天天看點

java-maven pom.xml 檔案 jar 包引用順序

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>