使用Nexus搭建私有Nuget倉庫

前言

  Nuget是ASP .NET Gallery的一員,是免費、開源的包管理工具,專一於在.Net / .Net Core應用開發過程當中第三方組件庫的管理,相對於傳統單純的dll引用要方便、科學得多。其中nuget.org是最著名的Nuget公開庫,可是企業內部開發的(業務)公共組件不可能都往公開庫上傳,因此,企業內部須要一個私有的Nuget倉庫來支持。雖然微軟有提供的Nuget Server,但Nuget Server用起來並不那麼順手,或者說感受有點low。所以,本文將介紹Nexus搭建的Nuget倉庫,但願能給你們多一個選擇。linux

 

安裝步驟

安裝環境docker

Centos 7+, dockervim

 

1. 設置分區

若是有數據盤須要掛載,能夠先設置分區,沒有可跳過此步驟。api

mkdir -p /opt/nexus -- 建立存放nexus數據的目錄工具

fdisk -l  -- 查看硬盤信息,肯定須要掛載的硬盤信息ui

mkfs.ext4 /dev/xvde -- 格式化硬盤3d

mount /dev/xvde /opt/nexus 掛載磁盤代理

blkid --查看硬盤信息server

vim /etc/fstab --將新分區的blkid寫入/etc/fstab,內容參考:blog

UUID={uuid} /opt/nexus ext4 defaults 0 0

保存退出,並重啓機器。

 

2. 禁止SELINNUX

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

重啓機器。

 

3. 安裝docker

若是已安裝的docker,可跳過此步驟。

yum update

yum install -y docker

systemctl enable docker

systemctl start docker

 

 

4. 拉取Nexus的鏡像

docker pull sonatype/nexus3:3.12.0

鏡像詳細說明:https://hub.docker.com/r/sonatype/nexus3/

 

5. 運行Nexus並把數據持久化到虛擬機或掛載的分區

mkdir /opt/nexus && chown -R 200 /opt/nexus

docker run -d -p 8081:8081 --name nexus -v /opt/nexus:/nexus-data sonatype/nexus3:3.12.0

 

稍等片刻,多是幾分鐘,經過http://serverip:8081就能訪問Nexus了。

 

Nexus說明

1. 默認賬號

Nexus的默認管理員賬號:admin,密碼:admin123。點擊界面右上角能夠登陸。

 

登陸完後,能夠看到一個設置按鈕:

 

點擊Repositories,查看內置的默認倉庫:

 

2. 倉庫說明

  其實Nexus默認已經建立好了Nuget的倉庫,而且是建立了3個不一樣類型的倉庫:nuget-group,nuget-hosted,nuget.org-proxy。

 

a. nuget.org-proxy

  類型是proxy,表示代理倉庫。咱們向它請求包(package)的時候,若是本地有,它就從本地提供,若是本地沒有,它會從nuget.org下載到本地,而後給我提供這個包。

 

b. nuget-hosted

  類型是hosted,表示託管倉庫。咱們通常把本身開發的包上傳到該倉庫中。

 

c. nuget-group

  類型是group,表示倉庫組,它結合了nuget.org-proxy和nuget-hosted,能對外提供上述二者中的包。

 

  簡而言之,nuget-hosted負責包上傳,nuget.org-proxy負責代理包,nuget-group負責提供包。

 

上傳包(Package)

1. 下載Nuget

https://www.nuget.org/downloads下載最新推薦的nuget.exe。

 

2. 添加Nuget Realms

由於Nexus認證Nuget是經過Realms來認證,所以,要添加Nuget Realms。

 

3. 準備Package

編寫DLL:

 

設置DLL信息(可選)

 

打包dll

方法一:使用控制檯

dotnet pack -c Release

 

方法二:使用Visual Studio

 

4. 上傳Package

指令模板:nuget push {dll}.nupkg {apiKey} -source {http://customsource/}

例如,我這裏是:D:\nuget push E:\WorkPlace\vs2017\Test\ErikDll\ErikDll\bin\Release\ErikDll.1.0.0.nupkg eb0497e8-5519-3f22-8e9f-f2eae720feb5 -source http://192.168.132.137:8081/repository/nuget-hosted/

 

 

Nexus上也能看到上傳的package:

 

其中,apiKey的獲取方法以下:

 

5. 使用Package

1. 打開Visual Studio的Nuget管理器,進行設置

 

2. 添加私有Nuget倉庫地址

 

3. 添加Package

 

4. 調用結果

相關文章
相關標籤/搜索