У меня есть многопроектная настройка gradle и я хочу собрать артефакты в zip-файл после завершения сборки. Сейчас у меня есть базовый файл build.gradle и 3 подпроекта (скажем, A, B и C). Когда я запускаю gradlew build в главном каталоге проекта, он входит в каждый подпроект (A, B и C), создает исполняемый jar Spring Boot, запускает SpotBugs, выполняет тесты и затем генерирует файл покрытия кода. Результаты go в A / build / reports / tests, A / build / reports / spotbugs и др. c.
В основном файле build.gradle я создал задачу
task packageArtifacts(type: Zip) {
archiveFileName = "${BUILD_VERSION}-artifacts.zip"
destinationDirectory = file("$buildDir/artifacts")
includeEmptyDirs false
from("$rootDir") {
include "**/reports/**"
}
doLast {
println "Zipping up"
}
}
Когда я запускаю задачу packageArtifacts напрямую, сжатые отчеты генерируются правильно.
Затем я попытался добавить
gradle.buildFinished {buildResults ->
packageArtifacts
}
Но когда я запускаю 'gradlew build' , кажется, никогда не вызывается packageArtifacts.