2014-01-23 24 views
17

我有很多依賴一個搖籃項目,其中之一如下解析:搖籃:如何顯示在那裏依賴性衝突發生

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.1版本一定是因爲我明確指定1.0傳遞依賴。 2。我怎樣才能找出這個特定的傳遞依賴來自哪裏?

回答

14

回答這個問題是dependencyInsight任務的全部要點。 javax.activation:activation:1.1com.sun.mail:mailapi:1.4.4com.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" }

+0

是的,我沒有意識到它。有沒有辦法一次性顯示所有已解決的衝突? –

+2

您可以執行'configurations.all {resulutionStrategy.failOnVersionConflict()}',在這種情況下,Gradle將強制您在構建腳本中顯式解決所有版本衝突。 –

+0

如果我只想知道他們是如何解決的,該怎麼辦? –