我有一个巨大的项目A,它有依赖项目B(不在我们的控制之下)。 问题是当我在一个项目pom.xml中包含B时,一切都很好并且构建成功。
但是在很少的领域,由于重复的类,我们面临运行时异常。
项目A拥有自己的JDom依赖版本,而项目B使用不同的/相同的JDom版本。在应用程序运行时,由于类冲突,它会引发InvocationTarget异常。
我如何确保,项目A使用它自己的jdom,而项目B使用它自己或至少解决这些冲突?
答案 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库的版本。