項目開發時,通常採用Maven來進行項目構建,管理,jar包下載,項目組開發人員開發時,只要在項目的pom.xml文件中,添加以下pom.xml信息從公共的庫中下載相關的Jar包以及依賴Jar包,但有時候公共的庫不是那麼穩定並且下載速度每每很慢,一個團隊一塊兒開發項目時,若是每一個組員都去下載一遍全部依賴的Jar包,實際上是一件很麻煩的事情,因此這時候就有必要搭建一個Maven的私庫了,這樣若是再添加其餘的構件時,會先在Maven私庫下載好,之後纔會下載到本地。之後,若是發現私服已經存在某一jar包,則會直接從私服下載,若是沒有再去網絡上下載,能大大的提升效率,所以頗有必要搭建maven私服。java
centos 7.5linux
nexus-3.14.0-04web
JDK 8vim
配置環境變量:centos
# vim /etc/profilebash
.....網絡
//java的環境變量設置app
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkjvm
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarmaven
export PATH=$PATH:$JAVA_HOME/bin
#//maven的環境變量設置
export MAVEN_HOME=/usrl/local/mevan
export PATH=$PATH:$MAVEN_HOME/bin
nexus maven下載,下載地址:https://www.sonatype.com/download-oss-sonatype,我下載的是nexus-3.14.0-04-unix.tar.gz
直接解壓便可 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
#useradd nexus
$vi ~/.bash_profile
NEXUS_HOME=/mysolf/nexus3/nexus-3.14.0-04
export PATH=$PATH:$NEXUS_HOME/bin
$source ~/.bash_profile
#nexus
提示:
$vim /mysolf/nexus3/nexus-3.14.0-04/bin/nexus.rc #這裏是控制啓動用戶的
#run_as_user="" #默認是root用戶啓動,固然你能夠去掉註釋如:
run_as_user="nexus" #就變成nexus用戶啓動了
再次運行nexus再也不報錯
$nexus
進入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同級目錄下)