java-maven pom.xml 文件 jar 包引用順序
場景:
當項目 project1 引用了多個 a.jar、b.jar、c.jar 包,
其中每個 jar 包都間接的引用了 common.jar 包,
且引用的每個 common.jar 的版本都不一樣,這時 product1 最終會用到那個?
common.jar引用路徑:
a.jar->common.jar 1.0
b.jar->b1.jar->common.jar 2.0
c.jar->c1.jar->c2.jar->common.jar 3.0
引用原則?
記住 pom.xml jar 引用的兩個原則,maven 最終會引用到引用路徑最短、配置最早出現的 jar包。
1.最早出現原則:pom 文件中 dependencies 節點下的 dependency 自上而下出現順序;
2.引用路徑最短原則:直接或者間接引用到目標 jar 的深度;
怎麼查看最終引用到那個版本jar 包?
已 springMVC 舉例,所有引用 jar 包在部署路徑的 /WEB-INF/lib 目錄下;
如何排除指定 jar包的間接引用?
project1 的 pom.xml 中排除 a.jar 對於 common.jar 包的引用
<dependency>
<groupId>com.test.a</groupId>
<artifactId>a</artifactId>
<version>15.0.0</version>
<exclusions>
<exclusion>
<groupId>common</groupId>
<artifactId>com.test</artifactId>
</exclusion>
</exclusions>
</dependency>