使用Nexus搭建私有Nuget倉庫


前言

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

 

安裝步驟

安裝環境

Centos 7+, docker

 

1. 設置分區

如果有數據盤需要掛載,可以先設置分區,沒有可跳過此步驟。

mkdir -p /opt/nexus -- 創建存放nexus數據的目錄

fdisk -l  -- 查看硬盤信息,確定需要掛載的硬盤信息

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

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

blkid --查看硬盤信息

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

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. 調用結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM