8

多くの依存関係を持つ複雑なプロジェクトがあるとします。依存関係のバージョンは、多数のインポート スコープ pom によって管理されます。私のプロジェクトは artifact に依存しgroup:artifactており、これは artifact に依存していますgroup:transitive-dependency。実行するdependency:treeと、次のように表示されます。

+- group:artifact:jar:1.3
   +- group:transitive-dependency:jar:1.1 (version managed from 1.3)

問題は、バージョン 1.3 以降がgroup:artifact:1.3必要なことです。group:transitive-dependency確かに、インポート poms の 1 つが間違ったバージョンを強制しています。しかし、それらすべてを検索する以外に、どれがどれであるかを知る方法はありますか?

4

2 に答える 2

2

これは、2 つ以上の親 Pom が同じアーティファクトと競合している場合に発生します。

例えば:

[INFO] |  \- com.rbs.gbm.risk:framework-core:jar:1.6.6:compile
[INFO] |     +- com.rbos.gbm.risk:log4jextensions:jar:2.3:compile (version managed from 2.2)
[INFO] |     +- oro:oro:jar:2.0.8:compile

私の場合、framework-core には log4jextentsions 2.2 が記載されています。そして私のスーパーポンはlog4jextentsions 2.3と言っています。どういうわけか、framework-core は maven に log4jextentsions 2.2 を使用するよう説得しました。

後でframework-core pomを更新して2.3を使用すると:

[INFO] |  \- com.rbs.gbm.risk:framework-core:jar:1.6.6:compile
[INFO] |     +- com.rbos.gbm.risk:log4jextensions:jar:2.3:compile
[INFO] |     +- oro:oro:jar:2.0.8:compile
于 2014-02-04T09:39:10.083 に答える