避免/解决Maven项目中的重复类

时间:2013-01-07 04:34:38

标签: java maven-2 dependencies duplicates pom.xml

我有一个巨大的项目A,它有依赖项目B(不在我们的控制之下)。 问题是当我在一个项目pom.xml中包含B时,一切都很好并且构建成功。

但是在很少的领域,由于重复的类,我们面临运行时异常。

项目A拥有自己的JDom依赖版本,而项目B使用不同的/相同的JDom版本。在应用程序运行时,由于类冲突,它会引发InvocationTarget异常。

我如何确保,项目A使用它自己的jdom,而项目B使用它自己或至少解决这些冲突?

1 个答案:

答案 0 :(得分:2)

您可以从正在导入的项目B中排除(传递)依赖项。

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>ProjectB</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>jdom</groupId>
          <artifactId>jdom</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
  </dependencies>
</project>

上面的示例将导致您的Project B依赖项被拉入,没有JDOM库的版本。