Maven 介紹

What is Maven

Maven 是一個構建工具,處理了你的 .java 文件編譯成 .class 再打包成 .jar文件,管理了你的(classPath)[https://en.wikipedia.org/wiki/Classpath_(Java)]和其他與構建相關的任務。Maven 它完全獨立通過合并其他常見任務如(下載和安裝必要的庫),您可以不需要其他的任何工具和腳本。

Maven 設計理念圍繞"構建可移植性",這樣一來,您不會遇到在同一臺計算機上使用相同的構建腳本具有相同代碼的問題,而在另一臺計算機上卻沒有。

Maven 的三個優(yōu)點:

  1. Maven 會下載你使用的庫,并且自動下載這些庫的依賴,這樣處理使得很多苦變得容易。并且讓你避免了依賴地獄
  2. 它使用約定優(yōu)于配置,因此默認情況下你不需要定義你想要做的任務
  3. Maven還具有許多不錯的插件,您可以安裝這些插件來處理許多例行任務,從使用JAXB從XSD架構生成Java類到使用Cobertura測量測試覆蓋率。只需將它們添加到pom.xml中,它們就會與您想要執(zhí)行的所有其他操作集成。

Maven依賴處理原則

Maven 依賴處理機制原則:最短路徑原則和優(yōu)先聲明原則

最短路徑原則

假設有2個依賴:

A -> B -> C(2.0)
N -> C(1.0)

這時候出現2個沖突的依賴C(1.0)和C(2.0),這時maven會采用最短路徑原則,選擇C(1.0)

優(yōu)先聲明原則

A -> B -> C(2.0)
N -> M -> C(1.0)

路徑深度相同,那么選用的依賴C的版本取決于最先聲明的那個包。

如何處理Maven包沖突

常見的exclude字段排除或者主動鎖版本

// A的聲明 > N
A -> B -> C(2.0)
N -> M -> C(1.0)

假設你想要使用C(1.0),你可以手動指定exclude字段把C(2.0)排除出去。

也可以直接聲明一個C的depedency,version鎖定在1.0。

Maven字段

reference: stackoverflow what is maven , maven的依賴原則

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容