Linux搭建Maven私庫
一、前言
專案開發時,一般採用Maven來進行專案構建,管理,jar包下載,專案組開發人員開發時,只要在專案的pom.xml檔案中,新增如下pom.xml資訊從公共的庫中下載相關的Jar包以及依賴Jar包,但有時候公共的庫不是那麼穩定而且下載速度往往很慢,一個團隊一起開發專案時,如果每個組員都去下載一遍所有依賴的Jar包,其實是一件很麻煩的事情,所以這時候就有必要搭建一個Maven的私庫了,這樣如果再新增其他的構件時,會先在Maven私庫下載好,以後才會下載到本地。以後,如果發現私服已經存在某一jar包,則會直接從私服下載,如果沒有再去網路上下載,能大大的提高效率,因此很有必要搭建maven私服。
二、Maven私庫安裝部署
1.平臺版本說明
1.1 centos 7
1.2 nexus-2.14.3
1.3 JDK 8
1.4 apache-maven-3.5.4
所需JDK、Maven、Nexus的Linux安裝包:
連結: https://pan.baidu.com/s/1nOZxtx78bkgU44nfr9vaQg 提取碼: pms1
2.環境安裝:安裝nuxus maven私庫之前先要安裝好JDK、maven等必要環境
2.1Linux安裝JDK:
解壓命令:
tar -zxvf jdk-8u191-linux-x64.tar.gz
JDK環境變數配置:
命令:
vim /etc/profile
profile檔案新增如下內容:JAVA_HOME根據實際目錄來:
JAVA_HOME=/usr/java/jdk1.8.0_191
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
儲存檔案,使環境變數生效命令:
source /etc/profile
在控制檯輸入如下命令,如果能看到JDK相關版本資訊,則說明JDK已經安裝成功:
java -version
2.2Linux安裝Maven:
解壓命令:
tar -zxvf apache-maven-3.5.4-bin.tar.gz
Maven環境變數配置:
命令:
vim /etc/profile
profile檔案新增如下內容:MAVEN_HOME根據實際目錄來:
export MAVEN_HOME=/var/local/maven/apache-maven-3.5.4
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin
儲存檔案,並執行如下命令使環境變數生效:
source /etc/profile
在控制檯輸入如下命令,如果能看到Maven相關版本資訊,則說明Maven已經安裝成功:
mvn -v
2.3 Nexus Maven私庫安裝
安裝linux版本無需安裝,直接解壓即可:
tar -zxvf nexus-2.14.3-02-bundle.tar.gz
進入bin目錄下,啟動服務:
./nexus start
注意啟動會報以下資訊:
****************************************
WARNING – NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
要在Linux系統/etc/profile檔案下新增:
export RUN_AS_USER=root
控制檯列印以下資訊,表示啟動成功:
這樣通過自己win系統瀏覽器訪問http://192.168.8.22:8081/nexus,訪問不了
開發埠 :
iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
三、Nexus Maven私庫的使用
3.1訪問地址:
http://192.168.8.22:8081/nexus
3.2Sign In登入管理頁面,賬號和密碼:
賬號:admin
密碼:admin123
如下如所示,在Repositories頁面裡顯示著,預設已經建立了5個倉庫(2個為group),直接可以拿來用,無需再自行建立倉庫。
3.3修改埠號:
8081為預設的埠號,要修改埠號可進入nexus-2.14.3-02-bundle\nexus-2.14.3\conf\開啟nexus.properties檔案,修改application-port屬性值就可以了。
3.4補充說明:
一般用到的倉庫種類是hosted、proxy。Hosted代表宿主倉庫,用來發布一些第三方不允許的元件,比如oracle驅動、比如商業軟體jar包。Proxy代表代理遠端的倉庫,最典型的就是Maven官方中央倉庫、JBoss倉庫等等。如果構建的Maven專案本地倉庫沒有依賴包,那麼就會去這個代理站點去下載,那麼如果代理站點也沒有此依賴包,就回去遠端中央倉庫下載依賴,這些中央倉庫就是proxy。代理站點下載成功後再下載至本機。筆者認為,其實Maven這個自帶的預設倉庫一般情況下已經夠大多數專案使用了。特殊情況時在配置新的倉庫,指定url即可。
hosted 型別的倉庫,內部專案的釋出倉庫
releases 內部的模組中release模組的釋出倉庫
snapshots 釋出內部的SNAPSHOT模組的倉庫
3rd party 第三方依賴的倉庫,這個資料通常是由內部人員自行下載之後釋出上去
proxy 型別的倉庫,從遠端中央倉庫中尋找資料的倉庫
group 型別的倉庫,組倉庫用來方便我們開發人員進行設定的倉庫