Я повторял функции в своем первом плагине Gradle. Я заранее определил, что мне нужен commons-io, поэтому я добавил зависимость от commons-io 2.4, которая является последней версией.
Некоторое время все шло хорошо, сборка работала из командной строки, и в Eclipse не было ошибок.
Я только начал пытаться интегрировать некоторый код, который использует «FileUtils.write(File,String)». Раньше мне не нужен был этот метод. В Eclipse у меня все получилось, а затем я попробовал сборку из командной строки.
Это не удалось с такими ошибками:
... error: cannot find symbol
FileUtils.write(serviceLoaderFile,
^
symbol: method write(File,String)
location: class FileUtils
Это смутило меня. Я пошел к неисправным линиям в Eclipse, и никаких проблем не было указано. Я перешел к методу «write()», и мне он показался прекрасным. Затем я запустил свою сборку из командной строки с помощью «--debug», чтобы получить некоторые подсказки.
Когда я нашел строку «javac», я обнаружил, что «$GRADLE_HOME\lib\commons-io-1.4.jar» (где «GRADLE_HOME» — это просто мой дистрибутив Gradle 2.3) был в пути к классам ДО моей зависимости jar. Затем я проверил код в банке 1.4 и определил, что класс «FileUtils» в этой версии не имеет метода «записи».
Что мне с этим делать?
Обновление:
Я полагаю, что мой блок «зависимости», вероятно, был бы полезен, а именно:
dependencies {
compile ("org.codehaus.groovy:groovy-all:2.3.9")
compile gradleApi()
compile "org.opendaylight.yangtools:yang-parser-impl:0.7.0-SNAPSHOT"
compile "org.opendaylight.yangtools:binding-java-api-generator:0.7.0-SNAPSHOT"
compile "org.opendaylight.yangtools:binding-generator-api:0.7.0-SNAPSHOT"
compile "org.opendaylight.yangtools:binding-generator-impl:0.7.0-SNAPSHOT"
compile "org.opendaylight.controller:yang-jmx-generator:0.3.0-SNAPSHOT"
compile "commons-io:commons-io:2.4"
testCompile("org.spockframework:spock-core:1.0-groovy-2.3") {
exclude group: "org.codehaus.groovy"
}
Я попытался закомментировать ссылку «gradleApi», но это не дало результата. Я также попытался добавить «исключить» для commons-io, связанного со ссылкой «groovy-all», но это также не имело никакого значения. }