【问题标题】:Avoiding/Resolving duplicate classes in Maven Project避免/解决 Maven 项目中的重复类
【发布时间】:2012-12-20 19:50:05
【问题描述】:
我有一个巨大的项目 A,它有依赖项目 B(不在我们的控制范围内)。
问题是当我在A项目pom.xml下包含B时,一切正常,构建成功。
但在少数领域,由于重复的类,我们面临运行时异常。
项目 A 有自己的 JDom 依赖版本,项目 B 使用不同/相同的 JDom 版本。在应用程序运行时,由于类冲突,它会抛出 InvocationTarget 异常。
我如何确保项目 A 使用自己的 jdom 而项目 B 使用自己的 jdom 或至少解决此类冲突?
【问题讨论】:
标签:
java
maven-2
dependencies
duplicates
pom.xml
【解决方案1】:
您可以从正在导入的项目 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>
上面的例子将导致你的项目 B 依赖被拉入,没有它的 JDOM 库版本。