Еще одно странное поведение gradle ...
Итак, я нашел этот пост:
Модуль исключения Gradle для задачи копирования
Абсолютно хорошо и работает как брелок для исключения вещей из копирования.
Но вот где это становится интересным. Вот как выглядит моя задача копирования:
task copyDependencies(type: Copy) {
into "$buildDir/libs/dependencies"
from configurations.runtime {
exclude module: 'groovy'
exclude module: 'aws-java-sdk-s3'
exclude module: 'commons-io'
}
}
Если я попытаюсь запустить Приложение через задачу Gradles 'application run'. Сбой при «Главный класс xxx не найден или загружен» . Углубившись в проблему, я заметил, что Groovy не может быть решен.
Я даже не запускаю эту задачу или не зависим от нее.
Но если я закомментирую строку 4 так:
task copyDependencies(type: Copy) {
into "$buildDir/libs/dependencies"
from configurations.runtime {
//exclude module: 'groovy'
exclude module: 'aws-java-sdk-s3'
exclude module: 'commons-io'
}
}
Приложение запускается как обычно, пока не достигнет точки, где ему необходим Commons-IO. Я все еще хочу использовать эту задачу copyDependencies в другое время, не меняя при этом код.
Может кто-нибудь объяснить мне это поведение?
Я представляю, что управляю конфигурацией. Runtime где-нибудь в файле Gradle, меняет ли это для любой другой задачи?