日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker)

發布時間:2023/12/4 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在日常開發中經常需要使用到私有倉庫,比如 dotNET 中的 NuGet、Java 中的 Maven、前端的 npm,還有 Docker 鏡像,每一個私有倉庫各自管理,維護起來比較麻煩,而 Nexus 可以將其統一起來。

本文將介紹 Nexus 的安裝以及怎樣進行 NuGet 、Maven、npm 和 Docker 鏡像的管理。

環境

  • Nexus:3.29.2

  • NuGet:5.5.1

  • Maven:3.6.3

  • NPM:6.14.8

  • Docker:19.03.13

  • 操作系統:CentOS 7

安裝

可以使用直接在服務器進行安裝或者使用 Docker 鏡像的方式安裝,本文采用 Docker 鏡像的方式安裝。

1、執行下面的命令進行容器的構建。

docker?run?-d?-p?8081:8081?-p?8082:8082?--name?nexus_8081?-v?/root/data/nexus:/nexus-data?--restart=always?sonatype/nexus3
  • 命令中的 -v /root/data/nexus:/nexus-data 是將 Nexus 的數據目錄映射到本地;

  • nexus 目錄需要給編輯的權限;

  • 8082 端口的映射目的是為了推送 docker 鏡像。

2、執行下面命令開放端口。

firewall-cmd?--zone=public?--add-port=8081/tcp?--permanent firewall-cmd?--reload

3、構建完后,需要等幾十秒到幾分鐘不等,程序有一個初始化的過程,然后訪問 http://ip:8081 ,可以出現下圖界面:

4、根據彈窗的提示在映射的目錄 /root/data/nexus 中找到 admin.password 中的內容就可以正常登錄了。

NuGet

1、在 Repositories 功能中創建 NuGet 的私有倉庫 NuGetTest ,倉庫模板選擇 nuget(hosted) 。

2、在 VS2019 中創建一個 NugetTest 的類庫項目,在項目上點擊右鍵→打包,在項目的 bin/Debug 目錄中會生成 NugetTest.1.0.0.nupkg 文件。

3、點擊「admin」→「NuGet API Key」,在該功能界面獲取 key ,這個 key 在推送 NuGet 包時需要用到。

4、將 nuget.exe 程序文件也放到 bin/Debug 目錄中,然后打開命令行進入到該目錄,執行下面命令進行包的推送。

nuget.exe?push?NugetTest.1.0.0.nupkg?dab3d4df-1eec-36e0-9b75-09b5b4b0ac41?-source?http://10.211.55.6:8081/repository/NuGetTest

推送成功如下圖:

5、在 VS2019 中的 NuGet 包管理器中添加源。

6、在引用時選擇添加的 NuGetTest 源,如下圖:

Maven

1、在 Repositories 功能中創建 Maven 的私有倉庫 MavenTest ,倉庫模板選擇 maven(hosted),Deployment policy 需要設置為 Allow redeply,否則在推送時會報 400 的錯誤。

2、在 Maven 的配置文件 /apache-maven-3.6.3/conf/settings.xml 中的 Servers 節點添加 Server 配置,如下:

<server><id>releases</id><username>test</username><password>000000</password> </server>
  • username 和 password 是在 Nexus 中創建的測試賬戶;

  • id 需要和 Maven 項目中的 pom.xml ?文件中配置的 id 一致。

3、在 IntelliJ IDEA 中創建 Maven 項目 MavenTest,在項目中的 pom.xml 文件中添加如下內容:

<distributionManagement><repository><id>releases</id><name>releases</name><url>http://10.211.55.6:8081/repository/MavenTest/</url></repository> </distributionManagement>
  • id:和上面的 settings.xml ?文件中的 id 一致即可;

  • url:在 Nenux 中創建的 Maven 倉庫的地址。

4、因為倉庫創建的是 Release 版本的,如果 pom.xml 文件的 version 中包含 SNAPSHOT ,需要刪除,否則在推送時會報 400 的錯誤。

5、在 IDEA 工具的 Maven 模塊中進行 depoly 。

6、推送成功后,在 Nexus 中可以看到如下內容:

7、創建一個 spring boot 的項目,并修改 pom.xml 文件,在 dependencies 節點添加依賴,并添加 repositories 配置,如下:

<dependencies><dependency><groupId>org.example</groupId><artifactId>MavenTest</artifactId><version>1.0</version></dependency> </dependencies> <repositories><repository><id>releases</id><name>releases</name><url>http://10.211.55.6:8081/repository/MavenTest/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository> </repositories>

8、在 IDEA 中的 build 模塊中進行同步就可以將 maven 包拉取到項目中。

NPM

1、在 Repositories 功能中創建 npm 的私有倉庫 NpmTest ,倉庫模板選擇 npm(hosted),Deployment policy 需要設置為 Allow redeply,否則在推送時會報 400 的錯誤。

2、使用 vue 創建一個項目 nexus-test 。

3、使用下面命令進行本地注冊,后面的地址為創建的 npm 私有庫的地址。

npm?config?set?registry?http://10.211.55.6:8081/repository/NpmTest/

4、想要將自己的 npm 包推送到私有倉庫中,需要先使用下面的命令進行登錄。

npm?login?–registry=http://10.211.55.6:8081/repository/NpmTest/

5、修改 vue 項目根目錄中的 package.json 文件,將 private 設置為 false ,版本號 version 根據需要進行修改。

6、在 Nexus 的 Realms 模塊進行設置,將 npm Bearer Token Realm 選到右邊的 Active 欄中,此處不設置,在推送時會出現 401 的錯誤。

7、執行下面命令進行包的推送:

npm?publish?--registry=http://10.211.55.6:8081/repository/NpmTest

8、創建一個新的 vue 項目 nexus-test1 來進行私有倉庫的使用,先進行倉庫地址的注冊。

npm?config?set?registry?http://10.211.55.6:8081/repository/NpmTest/

9、執行 npm install nexus-test 進行包的安裝,安裝成功如下圖:

Docker

1、在 Repositories 功能中創建 docker 的私有倉庫 DockerTest ,倉庫模板選擇 docker(hosted) 。

  • 勾選 http,設置端口為 8082 ,此處的端口為創建 Nexus 容器時設置的 8082 端口?;

  • 勾選允許匿名拉取鏡像;

  • 勾選運行客戶端通過 API 訪問。

2、在 Nexus 的 Realms 模塊進行設置,將 Docker Bearer Token Realm 選到右邊的 Active 欄中。

3、在 CentOS 7 系統中安裝 Docker ,然后再 /etc/docker/ 目錄中創建 daemon.json 文件,內容如下:

{"insecure-registries":?["10.211.55.6:9999"] }

4、執行下面命令進行配置的加載。

systemctl?daemon-reload systemctl?restart?docker

5、在 root 目錄中創建 nexus-docker 目錄,目錄中創建 Dockerfile 文件用來構建一個新的鏡像,內容如下:

FROM?nginx:latest COPY?.?/usr/share/nginx/html/ EXPOSE?80 CMD?["nginx",?"-g",?"daemon?off;"]

6、執行下面命令進行鏡像的構建和推送到服務端。

#?構建鏡像 docker?build?-t?nexus-docker?. #?將鏡像?tag?成服務端的地址 docker?tag?nexus-docker-test:latest?10.211.55.6:8082/nexus-docker-test:latest #?進行登錄? docker?login?-u?test?-p?000000?10.211.55.6:8082 #?推送鏡像 docker?push?10.211.55.6:8082/nexus-docker-test:latest

操作成功如下圖所示:

7、使用鏡像的時候,只要服務器進行了第三步中的地址注冊,就可以使用 docker pull 10.211.55.6:8082/nexus-docker-test:latest 進行鏡像拉取。

希望本文對您有所幫助!

總結

以上是生活随笔為你收集整理的Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。