2015-10-07 4 views
1

CLI Мой проект не компилируется, потому что я настроил мой build.gradle использовать Викисклада CLI-1,3, в то время как Gradle использует Обще-CLI-1,2:Gradle использует свою собственную зависимость вместо build.gradle для Обще-

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

Если я правильно понять зависимость показывает, что я ожидаю:

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

Однако, если я осмотреть configurations.compile.asPath я буду видеть Lib/плагины/Викисклада CLI-1.2.jar на пути до Викисклада CLI- 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() - просто ужасная функция «удобства» (см. давнюю ошибку: https://issues.gradle.org/browse/GRADLE-1715)

Смежные вопросы