При создании явной зависимости к clean
из встроенной задачи bootJar
встроенные источники не присутствуют в сгенерированном файле JAR:
bootJar {
dependsOn clean
mainClassname = "..."
}
Это создает вывод, подобный этому :
$ ./gradlew :modules:pdf-to-slides-converter:bootJar -q &> /dev/null && jar tf modules/pdf-to-slides-converter/build/libs/pdf-to-slides-converter.jar | egrep "BOOT-INF/classes.*class"
[empty result]
Там должен появиться класс. Если удалить dependsOn clean
, то появится класс:
./gradlew :modules:pdf-to-slides-converter:bootJar -q &> /dev/null && jar tf modules/pdf-to-slides-converter/build/libs/pdf-to-slides-converter.jar | egrep "BOOT-INF/classes.*class"
BOOT-INF/classes/com/org/pdftoslidesconverter/PdfToSlidesConverter.class
Почему это поведение так неясно на bootJar
? Как это возможно, что очистка удаляет источники, которые bootJar
пытается упаковать?