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>