1、maven是什麼,形象的理解是,maven是一隻鳥:BIR2D
B uild
I nformation Aggregation
R ule
R epository
D ependency Management
備註幾點:
1 關於R epository:存在3個maven庫,分別是
2)公司私服
3)本地庫
這樣作的緣由顯然是更高效地利用網絡資源,能夠理解的哦!?
2 關於R ule,例如一個maven管理的工程,他的目錄結構通常是maven固定的,開發代碼放在哪裏,測試代碼放在哪裏,pom文件在哪裏,一一造成了標準化的模式。固然,例外狀況容許存在,能夠個性定製。
2、maven的生命週期
1 、
pre-clean ---> clean ---> post-clean
二、
process-resources ---> compile … ---> test ---> package ---> install ---> deploy
三、pre-site ---> site ---> post-site ---> site-deploy
3、%M2_HOME% /conf /settings.xml 是中央倉庫,通常安裝完maven以後不要去修改它
%USER_HOME% /.m2/settings.xml是私服倉庫,知道當前USER生效,在當前USER用戶下,會對中央倉庫進行覆蓋。
4、pom.xml中的依賴,依賴關係存在版本衝突的解決方法:
若是依賴以下
那麼如何肯定d包,最終使用0.9仍是1.0版本呢?
有這樣3個原則:
一、路徑最短(看來是d:0.9)
二、路徑相等的狀況下,按照依賴添加的優先順序
三、推翻上述規則,我能夠在pom文件的開頭直接寫上,我使用的d包,就是1.0版本,後面就不用管了
固然,除了原則3,也能夠經過dependency exclusion的方式,手動仲裁掉某一個版本(可讀性會降低哦)