web-dev-qa-db-ja.com

Gradle:依存関係の競合が発生した場所を表示する方法

多くの依存関係を持つGradleプロジェクトがあり、そのうちの1つは次のように解決されます。

gradle dependencyInsight --configuration compile --dependency javax.activation

:dependencyInsight
javax.activation:activation:1.1 (conflict resolution)
+--- com.Sun.mail:mailapi:1.4.4
|    \--- compile
\--- com.Sun.mail:smtp:1.4.4
     \--- compile

javax.activation:activation:1.0.2 -> 1.1
\--- compile

バージョン1.0.2は明示的に1.0.2を指定したため、推移的な依存関係でなければなりません。この特定の推移的な依存関係がどこから来たのかを知るにはどうすればよいですか?

29
Giovanni Botta

この質問に答えることは、dependencyInsightタスクの要点です。 _javax.activation:activation:1.1_は、_com.Sun.mail:mailapi:1.4.4_および_com.Sun.mail:smtp:1.4.4_によって取り込まれます。

独自のコードが_javax.activation_にも依存している場合、compile("javax.activation:activation:1.0.2") { force = true }を使用してバージョンを強制できます。そうでない場合は、_configurations.all { resolutionStrategy.force "javax.activation:activation:1.0.2" }_を使用してバージョンを強制できます。

21