1、瞭解Mavenjava
2. 依賴管理工具
項目依賴的第三方的開源類庫,均可以經過依賴的方式引入到項目中來。代替了原來須要首先下載第三方jar,再加入到項目中的方式。從而更好的解決了合做開發中依賴增多、版本不一致、版本衝突、依賴臃腫等問題。linux
具體是怎麼實現的呢?Maven經過座標系統準確的定位每個構件,即經過座標找到對應的java類庫。apache
3. 項目信息管理工具
可以管理項目描述、開發者列表、版本控制系統地址、許可證等一些比較零散的項目信息。除了直接的項目信息,經過Maven自動生成的站點,以及一些已有的插件,還可以輕鬆得到項目文檔、測試報告、靜態分析報告、源碼版本、日誌報告等很是具備價值的項目信息。centos
2、 Maven與Nexus
這個問題從Maven的第二個用處提及,依賴管理,經過在Pom中指定座標的形式將jar引入到項目中。那這個過程,要經歷怎樣一個流程呢?從哪裏尋找jar?下載的jar放到哪裏?緩存
將這個問題順下來,就知道nexus和maven的關係了。服務器
從×××到jar?項目用到的jar又存放在哪裏?這引出了倉庫的概念,maven經過倉庫來統一管理各類構件。Maven的倉庫分爲本地倉庫和遠程倉庫。maven
當Maven根據座標尋找構件時,它首先會查看本地倉庫,若是本地倉庫存在此構件,則直接使用;若是本地倉庫不存在此構件,或者須要查看是否有更新的構件版本,Maven會去遠程倉庫查找,發現須要的構件以後,下載到本地倉庫再使用。
項目=>本地倉庫=>遠程倉庫ide
Nexus是一種遠程倉庫,根據上段的介紹,咱們已經知道遠程倉庫的做用。在遠程倉庫中,默認的是中央倉庫,中央倉庫是Maven核心自帶的遠程倉庫。那就使用中央倉庫不就得了嗎,爲何咱們要安裝Nexus呢?工具
咱們從項目實際開發來看:
1.一些沒法從外部倉庫下載的構件,例如內部的項目還能部署到私服上,以便供其餘依賴項目使用。單元測試
3、 Nexus安裝
1.環境:centos7
版本:
jdk:jdk-7u45-linux-x64.rpm
nexus:nexus-2.14.2-01-bundle.tar.gz
maven:apache-maven-3.3.9-bin.tar.gz
2.安裝jdk,maven環境配置
配置:
JAVA_HOME=/usr/java/jdk1.7.0_45 JRE_HOME=/usr/java/jdk1.7.0_45/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$M2_HOME/bin CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar M2_HOME=/data/apache-maven-3.3.9
export JAVA_HOME JRE_HOME PATH CLASSPATH M2_HOME
source /etc/profile
版本查看:
java版本: java -version
maven版本:mvn --version
3.安裝,配置nexus
將下載的nexus-2.14.2-01-bundle.tar.gz包,解壓到/data 下
編輯nexus腳本文件
cd /data/nexus/nexus-2.14.2-01/bin
cat nexus NEXUS_HOME=".." ##nexus安裝目錄/data/nexus/nexus-2.14.2-01 RUN_AS_USER=root ##啓動nexus用戶
有兩個文件:
nexus-2.14.2-01:nexus服務
sonatype-work:私有庫目錄
nexus設置啓動服務:sh /data/nexus/nexus-2.14.2-01/bin/nexus
4.訪問nexus
登陸http://IP:8081/nexus/
默認用戶名和密碼:admin admin123
4、 maven命令
Maven構建java項目,Maven工程結構和內容都基於pom.xml。經常使用的打包命令有mvn package、mvn install、mvn deploy。打包生成jar包或war。但這三者有區別。
其中clean命令是清理構建項目下的target目標文件,即會刪除項目下的target文件目錄。項目代碼修改後需使用clean清除target,從新生成target。
package命令完成項目編譯、單元測試、打包功能,但沒有將打好的jar包部署到本地maven倉庫和遠程私服。install命令完成項目編譯、單元測試、打包功能,把打好的jar包部署到本地maven倉庫,但沒有部署到遠程私服倉庫。deploy命令完成項目編譯、單元測試、打包功能,把打好的jar包部署到本地maven倉庫,同時也會部署到遠程私服倉庫。