2015-10-07 27 views
1

我的項目不編譯,因爲我已經配置我的build.gradle使用commons-CLI-1.3,而gradle這個使用通用-CLI-1.2:gradle這個使用它自己的依賴,而不是的build.gradle對公地CLI

compile 'commons-cli:commons-cli:1.3' 

如果我依賴的見解正確顯示我的期望:

commons-cli:commons-cli:1.3 
\--- compile 

不過,如果我檢查configurations.compile.asPath我會看到之前公地CLI的路徑上的lib /插件/公地CLI-1.2.jar 1.3.jar!

這似乎是因爲我有在具有編譯依賴gradleApi()一期工程項目依賴 - 它使用1.2.jar(在dependencyInsight未報道)

我看到這種情況出現的gradle中2.3和2.7,至少。

任何人遇到這個問題,並有一個解決方案? 好像很毫無價值和不透明的行爲對gradle產出的一部分

+0

https://issues.gradle.org/browse/GRADLE-1715 –

回答

1

所以,這裏是我做過什麼來解決這個問題,在我的情況下... 而不是在我的其他項目依賴使用gradleApi(),我添加了這些明確:

compile 'org.gradle:gradle-core:2.6' 
compile 'org.codehaus.groovy:groovy-all:2.4.5' 

即使這並沒有解決我的問題(它做到了),這會使這些依賴關係更易於查看/管理添加{exclude:}子句等等。我想gradleApi()只是一個可怕的「便利」功能(參見長期的bug:https://issues.gradle.org/browse/GRADLE-1715

相關問題