安裝環境
Red Hat Enterprise Linux Server release 7.3 (Maipo)
jdk1.7.0_80
apache-tomcat-7.0.90
mysql-5.7.23
apache-maven-3.5.4-bin.tar.gz(http://maven.apache.org/download.cgi)
nexus-3.14.0-04-unix.tar.gz(https://www.sonatype.com/download-oss-sonatype)
一、Maven是什么?
Maven是優秀的構建工具,依賴管理工具,項目信息管理工具。
二、nexus
Nexus倉庫管理工具,是一種遠程倉庫,私服的一種。
三、Maven與Nexus
Maven的依賴管理功能,通過在Pom中指定坐標的形式將jar引入到項目中。那這個過程,要經歷怎樣一個流程呢?從哪里尋找jar?下載的jar放到哪里?
這引出了倉庫的概念,maven通過倉庫來統一管理各種構件。Maven的倉庫分為本地倉庫和遠程倉庫。
當Maven根據坐標尋找構件時,它首先會查看本地倉庫,如果本地倉庫存在此構件,則直接使用;如果本地倉庫不存在此構件,或者需要查看是否有更新的構件版本,Maven會去遠程倉庫查找,發現需要的構件之后,下載到本地倉庫再使用。
首先,Nexus是一種遠程倉庫,根據上段的介紹,我們已經知道遠程倉庫的作用。在遠程倉庫中,默認的是中央倉庫,中央倉庫是Maven核心自帶的遠程倉庫。那就使用中央倉庫不就得了嗎,為什么我們要安裝Nexus呢?
我們從項目實際開發來看:
1.一些無法從外部倉庫下載的構件,例如內部的項目還能部署到私服上,以便供其他依賴項目使用。
2. 為了節省帶寬和時間,在局域網內架設一個私有的倉庫服務器,用其代理所有外部的遠程倉庫。當本地Maven項目需要下載構件時,先去私服請求,如果私服沒有,則再去遠程倉庫請求,從遠程倉庫下載構件后,把構件緩存在私服上。這樣,及時暫時沒有Internet鏈接,由於私服已經緩存了大量構件,整個項目還是可以正常使用的。同時,也降低了中央倉庫的負荷。
四、安裝
1.Maven安裝
#解壓 [root@PCS103 local]# tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local #配置環境變量 [root@PCS103 local]# vim /etc/profile export MAVEN_HOME=/usr/local/apache-maven-3.5.4 export PATH=$JAVA_HOME/bin:$SVN_HOME/bin:$MAVEN_HOME/bin:$PATH [root@PCS103 local]# source /etc/profile #驗證 [root@PCS103 local]# mvn -v Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) Maven home: /usr/local/apache-maven-3.5.4 Java version: 1.7.0_80, vendor: Oracle Corporation, runtime: /usr/local/jdk1.7.0_80/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"
2.Nexus安裝
注意:Nexus3.x最低JVM1.8,這里安裝Nexus2.x
#解壓 [root@PCS103 src]# tar -zxvf nexus-2.11.1-01-bundle.tar.gz -C /usr/local #解壓之后有兩個文件夾 nexus-2.11.1-01是nexus的核心文件,sonatype-work是maven下載jar存放地址。 #配置nexus-2.11.1-01(容器使用jetty) 命令:vim /usr/local/nexus-2.11.1-01/conf/nexus.properties 配置如下(無需修改) 默認端口8081: # Jetty section application-port=8081 application-host=0.0.0.0 nexus-webapp=${bundleBasedir}/nexus nexus-webapp-context-path=/nexus # Nexus section nexus-work=${bundleBasedir}/../sonatype-work/nexus runtime=${bundleBasedir}/nexus/WEB-INF #如果使用root用戶運行 需要修改 編輯命令:vim /usr/local/nexus-2.11.1-01/bin/nexus 修改內容:RUN_AS_USER=root #啟動 [root@PCS103 bin]# /usr/local/nexus-2.11.1-01/bin/nexus start **************************************** WARNING - NOT RECOMMENDED TO RUN AS ROOT **************************************** Starting Nexus OSS... Started Nexus OSS. #驗證 [root@PCS103 bin]# jps 1228 JswLauncher
#訪問網址:http://134.32.123.103:8081/nexus 默認用戶和密碼:admin/admin123
接下來我們可以設置nexus開機啟動配置:
有倆種方案:第一種是把nexus做成服務,第二種是在/etc/rc.d/rc.local添加執行命令
第一種:把nexus做成服務
1、進入/etc/init.d目錄命令:cd /etc/init.d
2、拷貝nexus命令:cp /usr/local/nexus/nexus-2.11.1-01/bin/nexus ./nexus
3、賦權命令:chmod 755 /etc/init.d/nexus
4、添加服務命令:chkconfig --add nexus
5、設置開機啟動命令:chkconfig --levels 345 nexus on
6、然后我們進行編輯/etc/init.d下的nexu文件命令:vim /etc/init.d/nexus
修改如下內容:
RUN_AS_USER=root
NEXUS_HOME="/usr/local/nexus/nexus-2.11.1-01"
PIDDIR="${NEXUS_HOME}"
7、進行編輯nexus安裝目錄下的wrapper.conf文件命令:
vim /usr/local/nexus/nexus-2.11.1-01/bin/jsw/conf/wrapper.conf
注意修改jdk文件路徑:wrapper.java.command=/usr/local/jdk1.7/bin/java
8、最后我們執行:service nexus start (restart、stop)
9、Reboot重啟服務,開機時我們發現nexus服務自動已啟動!
第二種:在/etc/rc.d/rc.local添加執行命令
編輯命令:vim /etc/rc.d/rc.local
添加內容:/usr/local/nexus/nexus-2.11.1-01/bin/nexus start
編輯命令:vim /usr/local/nexus/nexus-2.11.1-01/bin/jsw/conf/wrapper.conf
注意修改jdk文件路徑:wrapper.java.command=/usr/local/jdk1.7/bin/java
Reboot一下Linux,最后我們訪問nexus服務:http://134.32.123.103:8081/nexus
參考:
https://blog.csdn.net/liusong0605/article/details/25654811
https://www.cnblogs.com/dingyingsi/p/3687077.html
https://help.sonatype.com/docs
https://blog.csdn.net/smartbetter/article/details/55116889