解决maven多个项目依赖时jar包冲突

在项目开发中遇到包冲突,总结一下解决过程。

A,B,C三个项目是P1项目的子工程,A项目同时依赖B,C两个项目,P1项目统一管理依赖P2项目

P1 pom.xml

<dependencyManagement>
    <dependencies>
        <dependency>
          <groupId>com.test</groupId>
          <artifactId>P2</artifactId>
          <version>${P2.version}</version>
          <type>pom</type>
          <scope>import</scope>
       </dependency>
     <dependencies>
<dependencyManagement>

P2项目的子项目D,E,F 。D项目中自己依赖了 poi-ooxml 4.1.0 ,D项目的传递依赖中引用了E项目的poi-ooxml 3.13,导致包冲突。百度了一下说是在D项目引用E项目时加上

<dependency>
    <groupId>com.test</groupId>
    <artifactId>E</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <artifactId>poi-ooxml</artifactId>
            <groupId>org.apache.poi</groupId>
        </exclusion>
    </exclusions>
</dependency>

跑了一下还是jar包冲突。

在P1项目的pom中增加

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependencies>
<dependencyManagement>

A项目的pom中增加

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
</dependency>

冲突解决!

 

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页