我想在运行根项目的构建任务时将子模块归档文件复制到根项目的构建目录中
task archive(type: Zip) {
dependsOn copyWars
archiveName = "${project.name}-${version}.zip"
destinationDir = file('build/dist')
from 'build/libs'
exclude "*.zip"
includeEmptyDirs = false
}
我已经尝试使用build.dependsOn archive
和build.finalizedBy archive
在运行根模块构建任务时,我希望包含子模块war文件的根模块zip文件。
设a,b为两个子模块,c为根模块。因此c.zip
应该包含a.war
和b.war
。但是没有创建c.zip
文件。
可能是我做错了方法。
请任何人告诉我正确的道路。
答案 0 :(得分:0)
假设您有两个产生war1
伪像的子项目war2
和war
:Root项目脚本中的以下配置应该起作用:
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