更新時間:2020-08-28 08:57:52 來源:動力節點 瀏覽1412次
大家可能對Maven坐標與依賴還不是很清楚,在Maven教程詳解中就有這部分的內容,在這里小編先給大家大致介紹一下。
<groupId>cmbc.com.cn</groupId> <artifactId>myapp</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging>
說明:
a、groupId、artifactId、version必須配置,packaging為可選配置,未配置則默認為jar
b、項目構件名稱與坐標相對應,通常為artifactId-version.packaging,上述坐標對應構件名稱為myapp-1.0-SNAPSHOT
<project> <dependencies> 可以包含多個<dependency> <dependency> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <type>...</type> 坐標類型,對應項目坐標定義的packing <scope>...</scope> 依賴范圍 <optional>...</optional> 標記依賴是否可選 <exclusions> 排除傳遞性依賴 ... </exclusions> </dependency> </dependencies> </project>
a、依賴范圍種類
b、依賴范圍的作用
Maven有編譯、測試、運行classpath,依賴范圍用于控制依賴與三種classpath的關系。
a、項目A依賴于B,B依賴于C,則C是A的傳遞性依賴。Maven會將必要的間接依賴以傳遞式依賴的形式引入到項目。
b、確定傳遞性依賴范圍
項目A依賴于B,B依賴于C,則B是A的第一直接依賴,C是B的第二直接依賴,C是A的傳遞性依賴。第一和第二直接依賴的范圍決定了傳遞性依賴的范圍,如下所示,左邊為第一直接依賴范圍,上面為第二直接依賴范圍,中間為傳遞性依賴范圍:
當項目多個直接依賴在其自己的依賴路徑中分別依賴了同一個其它依賴,那么該引入哪一個路徑上的依賴呢?
規則:不同路徑長度,路徑最短優先;相同路徑長度,第一申明優先
假設A依賴于B,B依賴于C(可選),D(可選)(在B項目中的pom.xml文件依賴C和D,申明
傳遞性依賴會隱式的引入很多依賴,極大簡化了項目依賴的管理。但在以下情形需要使用
a、A依賴B,B依賴C,C(快照版本)不穩定可能會影響項目A。此時需要排除C而引入引入C的穩定版本。
b、可能由于版權原因,C(穩定版本)不在中央倉庫,而D項目是一個可替代的實現。此時需要排除C而引入D
以上就是對Maven依賴管理的相關內容,如果還有不明白的地方,可以到技術文檔中查看詳細資料。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習