1

私は1つの巨大なプロジェクトAを持っており、依存プロジェクトBがあります(これは私たちの管理外です)。問題は、A プロジェクト pom.xml の下に B を含めると、すべて問題なくビルドが成功することです。

しかし、一部の領域では、クラスの重複による実行時例外に直面しています。

プロジェクト A には独自の JDom 依存バージョンがあり、プロジェクト B は異なる/同じ JDom バージョンを使用しています。アプリケーションの実行時に、競合するクラスが原因で InvocationTarget 例外がスローされます。

プロジェクト A が独自の jdom を使用し、プロジェクト B が独自の jdom を使用するか、少なくともそのような競合を解決するにはどうすればよいですか?

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 に答える