Допустим, у вас есть два подпроекта war1
и war2
, которые производят артефакт war
: должна работать следующая конфигурация в скрипте корневого проекта:
build.gradle (корневой проект)
// copy war artifacts from sub-projects
task copyWars(type: Copy){
into "build/libs"
from project("war1").war
from project("war2").war
}
// create archive with content from 'build/libs' directory
task archive(type: Zip) {
dependsOn copyWars
archiveName = "${project.name}-${version}.zip"
destinationDir = file('build/dist')
from 'build/libs'
exclude "*.zip"
includeEmptyDirs = false
}
// add 'archive' task to the main "build" lifecycle
build.dependsOn archive
Вы также можете упростить и избавиться от copyWars
(если целью этой задачи является только копирование войн из подпроектов в корневой проект):
task archive(type: Zip) {
dependsOn copyWars
archiveName = "${project.name}-${version}.zip"
destinationDir = file('build/dist')
from 'build/libs'
from project("war1").war
from project("war2").war
exclude "*.zip"
includeEmptyDirs = false
}
build.dependsOn archive