4

内容が矛盾するアーティファクト:

org.javassist:javassist:jar:3.17.1-GA&&javassist:javassist:jar:3.12.1.GA

前者は Hibernate に由来し、後者は Guava に由来します。どちらも最終的な戦争ファイルになります。問題は、グループ ID が異なるため、従来の競合解決メカニズムが失敗することです。したがって、両方の jar が最終的なプロジェクトの成果物になります。

プロジェクトはマルチモジュールであるため、管理された依存関係で Guava の依存関係を除外することはできません。一部のモジュールは、Hibernate なしで Guava を使用します。彼らは javassist の依存関係を見逃すでしょう。しかし、そうしないと、「余分な」アーティファクトがプロジェクトの war ファイルにポップアップ表示されます。

これら 2 つの依存関係が実際には同じコードの 2 つの異なるバージョンであることを Maven に伝える方法はありますか?

4

1 に答える 1

3

私は次の解決策に固執します:

  1. javassistプロジェクトのメインの pom.xmlにアーティファクトへの明示的な依存関係を追加します (すべての子モジュールがこの依存関係を継承するようにします)。
  2. javassistHibernate と Guava の両方を除外します。
  3. 最も重要: 依存関係が必要な理由を示すコメントを追加してくださいjavassist:)
于 2013-02-07T11:44:28.080 に答える