前言
項目開發時,一般采用Maven來進行項目構建,管理,jar包下載,項目組開發人員開發時,只要在項目的pom.xml文件中,添加如下pom.xml信息從公共的庫中下載相關的Jar包以及依賴Jar包,但有時候公共的庫不是那么穩定而且下載速度往往很慢,一個團隊一起開發項目時,如果每個組員都去下載一遍所有依賴的Jar包,其實是一件很麻煩的事情,所以這時候就有必要搭建一個Maven的私庫了,這樣如果再添加其他的構件時,會先在Maven私庫下載好,以后才會下載到本地。以后,如果發現私服已經存在某一jar包,則會直接從私服下載,如果沒有再去網絡上下載,能大大的提高效率,因此很有必要搭建maven私服。
Maven私庫安裝部署
1.平台版本說明
centos 7.5
nexus-3.14.0-04
JDK 8
2.環境安裝:安裝nuxus maven私庫之前先要安裝好JDK、maven等必要環境
配置環境變量:
# vim /etc/profile
.....
//java的環境變量設置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#//maven的環境變量設置
export MAVEN_HOME=/usrl/local/mevan
export PATH=$PATH:$MAVEN_HOME/bin
3.Nexus Maven私庫安裝
nexus maven下載,下載地址:https://www.sonatype.com/download-oss-sonatype,我下載的是nexus-3.14.0-04-unix.tar.gz
1)安裝:linux版本無需安裝
直接解壓即可 tar -zxf nexus-3.14.0-04-unix.tar.gz
1.1設置系統內核,這個是根據日志報警自己設置的
# vi /etc/security/limits.conf
添加下面參數
nexus soft nproc 2047
nexus hard nproc 1638423
nexus soft nofile 1024
nexus hard nofile 65536
1.2.創建nexus運行賬號
#useradd nexus
1.3.修改bash_profile文件
$vi ~/.bash_profile
NEXUS_HOME=/mysolf/nexus3/nexus-3.14.0-04
export PATH=$PATH:$NEXUS_HOME/bin
$source ~/.bash_profile
#nexus
提示:
1.4.設置運行用戶
$vim /mysolf/nexus3/nexus-3.14.0-04/bin/nexus.rc #這里是控制啟動用戶的
#run_as_user="" #默認是root用戶啟動,當然你可以去掉注釋如:
run_as_user="nexus" #就變成nexus用戶啟動了
再次運行nexus不再報錯
$nexus
2)運行:
進入bin目錄下,運行./nexus start,啟動服務
$nexus start
(可選)的配置:
# vim /usr/local/nexus/bin/nexus.vmoptions #這個文件有一些啟動參數,這里修改占用內存,存儲,日志的位置等
-Xms1200M -Xmx1200M -XX:MaxDirectMemorySize=2G -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../sonatype-work/nexus3 -Djava.io.tmpdir=../sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false
# vim /usr/local/nexus/etc/nexus-default.properties #修改端口啊監聽地址在這個配置文件中
## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/
# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
訪問私服
nexus3.X的默認端口是:8081
nexus3.X的默認賬號是:admin
nexus3.X的默認密碼是:admin123
nexus3.X搭建的maven私服的本地訪問地址是:http://私服的ip:8081**
例如我的就是:http://192.168.176.181:8081/
可以點擊上面的“設置”圖標,在“設置”里可以添加用戶、角色,對接LDAP等的設置,如下:
注意下面幾點說明:
1.component name的一些說明:
1)maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar
2)maven-releases:私庫發行版jar
3)maven-snapshots:私庫快照(調試版本)jar
4)maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml中使用。
2.Nexus默認的倉庫類型有以下四種:
1)group(倉庫組類型):又叫組倉庫,用於方便開發人員自己設定的倉庫;
2)hosted(宿主類型):內部項目的發布倉庫(內部開發人員,發布上去存放的倉庫);
3)proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(可以點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠程倉庫的路徑);
4)virtual(虛擬類型):虛擬倉庫(這個基本用不到,重點關注上面三個倉庫的使用);
3.Policy(策略):表示該倉庫為發布(Release)版本倉庫還是快照(Snapshot)版本倉庫;
4.Public Repositories下的倉庫
1)3rd party: 無法從公共倉庫獲得的第三方發布版本的構件倉庫,即第三方依賴的倉庫,這個數據通常是由內部人員自行下載之后發布上去;
2)Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫
3)Central: 用來代理maven中央倉庫中發布版本構件的倉庫
4)Central M1 shadow: 用於提供中央倉庫中M1格式的發布版本的構件鏡像倉庫
5)Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫
6)Releases: 內部的模塊中release模塊的發布倉庫,用來部署管理內部的發布版本構件的宿主類型倉庫;release是發布版本;
7)Snapshots:發布內部的SNAPSHOT模塊的倉庫,用來部署管理內部的快照版本構件的宿主類型倉庫;snapshots是快照版本,也就是不穩定版本
所以自定義構建的倉庫組代理倉庫的順序為:Releases,Snapshots,3rd party,Central。也可以使用oschina放到Central前面,下載包會更快。
5.Nexus默認的端口是8081,可以在etc/nexus-default.properties配置中修改。
6.Nexus默認的用戶名密碼是admin/admin123
7.當遇到奇怪問題時,重啟nexus,重啟后web界面要1分鍾左右后才能訪問。
8.Nexus的工作目錄是sonatype-work(路徑一般在nexus同級目錄下)