Nexus3 OSS環境搭建以及在日常工作中的用途


Nexus是什么

本文介紹的Nexus不是谷歌的一個手機品牌哈,而是一個非常強大的倉庫管理平台。支持常見的Docker、Maven、npm、PyPI等倉庫的管理。

Nexus是一個開源的軟件,有Nexus OSS版本和Pro的版本。

Nexus在我們的日常工作中有接觸到嗎?

在我們的日常工作中,我們是否經常會被已下問題困擾:

1、java開發的項目,使用maven工程進行管理時,編譯項目下載jar包時非常緩慢

2、編譯前端vue項目,需要使用npm命令下載依賴的插件非常慢

3、使用docker的時候,pull鏡像非常慢

4、公司對XXX網絡做了限制,可能無法訪問到某網絡,或者團隊成員都要從外網下載某個文件,下載非常慢

......

下面,通過一張圖片的對比來介紹一下使用Nexus的好處:

從左邊的圖片可以看出,開發人員使用傳統的方式從官網去下載各種插件,這個過程容易受到網絡的影響以及公司網絡策略和安全的限制。

從右邊的圖可以看出,如果在公司內部搭建一個自己的Nexus倉庫管理平台的話,那么開發人員只需從內部的倉庫中去下載所需文件,下載速度會加快 ,只需在服務器上配置代理倉庫到官方倉庫即可。

在日常工作中,我們經常會使用類似下面的命令去安裝一些所需的插件/軟件:

npm install --registry=https://registry.npm.taobao.org

實際上,這些就是國內的一些第三方的鏡像倉庫。倉庫管理目前用的多的應該是Nexus和Artifactory,至於2個工具之間的優勢和差異對比 ,感興趣的可以自己去了解一下。

Nexus OSS免費版的環境搭建

1、安裝包下載

官網下載地址:https://www.sonatype.com/nexus/repository-oss/download

百度網盤下載好的地址:

鏈接:https://pan.baidu.com/s/1grqqQFHCpheFrH8y6QQVmA

提取碼:1234

2、linux環境下的部署(以nexus3.27.0-03為例)

將安裝包傳到服務器某個目錄,然后使用tar命令去解壓文件

進入到安裝目錄的bin目錄下,執行./nexus start 即可啟動nexus

常用命令如下:

./nexus start : 后台啟動,類似於nohup

./nexus run : 前台啟動,能看到實時刷新的日志信息,關掉窗口后就停止了

./nexus stop:停止服務

注意事項:

a、目前的nexus os3.xxx的版本,需要依賴jdk環境,且必須是jdk1.8

b、如果服務器安裝的jdk配置的環境變量不是jdk1.8,在啟動的時候會報錯:

No suitable Java Virtual Machine could be found on your system.

The version of the JVM must be 1.8.

Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.

解決方法:

修改nexus的bin目錄下的nexus文件,將jdk1.8的安裝目錄配置到INSTALL4J_JAVA_HOME中,無需配置到系統環境變量中去:(之前試過jdk1.8.0_251的版本不行 ,換成jdk1.8.0_261的版本才可以)

c、在安裝目錄下的etc/nexus-default.properties文件中,可以自定義端口,默認是8081端口。

3、windows環境下的部署

將下載下來的壓縮包解壓,進入到bin目錄下后,在當前目錄打開cmd窗口,輸入nexus /run 即可啟動。

如果啟動過程中報下面的錯誤:

java.lang.NumberFormatException: null

安裝目錄不能包含中文

將安裝目錄遷移到不包含中文的路徑之后,重新執行命令即可。如果還報錯的話,就檢查一下jdk的版本,目前在windows上,jdk的版本是11,也可以啟動成功。端口號一樣的在etc目錄下的etc/nexus-default.properties文件中更改。

4、訪問nexus環境

在瀏覽器輸入ip+端口號就可以訪問。

不管是在linux還是windows上搭建的環境,初始的admin帳號的密碼都存儲在nexus同層級目錄下的sonatype-work文件夾下面的admin.password文件中,登錄后會提示你修改默認密碼,修改后,該保存初始密碼的文件會被清除掉。

        

Nexus Repository倉庫類型介紹

啟動nexus服務后,可能要稍微等一會,頁面才能正常訪問,因為在啟動的時候,后台需要初始化一些數據之類的,同時會創建幾個maven和nuget默認的倉庫。

不管是創建maven還是npm的倉庫,在nexus中,倉庫主要有proxy,hosted以及group 這3種類型,下面分別介紹一下這3種類型的區別:

  • hosted,本地代理倉庫,通常用來存儲自己編寫的一些插件和包到這一類型的倉庫,可以push和pull。

  • proxy,代理的遠程倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫,只能pull,proxy倉庫可以用來加速。

  • group,倉庫組,用來合並多個hosted/proxy倉庫,通常我們配置maven依賴倉庫組,只能pull。 


演示如何通過自己搭建的nexus環境下載jar包編譯maven工程代碼

登錄nexus環境后,在nexus網站找到group類型的maven倉庫:maven-public,進入設置頁面后,查看該倉庫的url地址:

然后將地址填入maven的配置文件中即可(maven安裝目錄下conf/settings.xml)

maven的settings.xml文件中,在mirrors下面添加一個鏡像:

  <mirror>
    <id>maven-public</id>
    <name>maven-public</name>
    <url>http://192.168.64.128:8000/repository/maven-public/</url>
    <mirrorOf>*</mirrorOf>
  </mirror>            

然后找一個maven工程用命令編譯,可以看一下輸出日志:

從日志可以看出,已經從我們自己搭建的倉庫中開始下載插件了。

同時,在倉庫中也可以看到有我們下載的一些包:

ps:只有本地沒有的包,才會從私服上去下載

好了,到這就已經介紹完了Nexus是如何搭建倉庫管理平台的,你get到了嗎?有收獲的話,幫忙分享給身邊的其他小伙伴唄


免責聲明!

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



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