web-dev-qa-db-fra.com

Gradle: comment afficher où un conflit de dépendance survient

J'ai un projet Gradle avec de nombreuses dépendances, dont l'une est résolue comme suit:

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

La version 1.1 doit être une dépendance transitive car j'ai explicitement spécifié 1.0.2. Comment savoir d'où vient cette dépendance transitive spécifique?

29
Giovanni Botta

Répondre à cette question est tout l'intérêt de la tâche dependencyInsight. javax.activation:activation:1.1 Est tiré par com.Sun.mail:mailapi:1.4.4 Et com.Sun.mail:smtp:1.4.4.

Si votre propre code dépend également de javax.activation, Vous pouvez forcer votre version avec compile("javax.activation:activation:1.0.2") { force = true }. Sinon, vous pouvez forcer une version avec configurations.all { resolutionStrategy.force "javax.activation:activation:1.0.2" }.

21
Peter Niederwieser