1

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

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

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

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

4

1 回答 1

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>

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

于 2013-01-07T04:45:27.260 回答