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