我想在我的根项目中创建一个任务,为一些子项目创建一个自定义TAR。
task archive(type: Tar) {
project.logger.info("Tar bundle :: ")
baseName = project.baseName
destinationDir = new File(project.buildDir.path)
archiveDir = new File(project.buildDir.path)
compression = Compression.GZIP
from (archiveDir)
}
我找到了这个任务但我需要的是一个子项目,用于发送subproject.name并让任务使用buildDir和来自调用任务的子项目的源目录。然后将存档保存到子项目的/ target。
如果不为每个子项目创建新任务,这是否可行?
答案 0 :(得分:1)
如果每个子项目都应该创建自己的Tar,那么您需要为每个子项目创建一个任务。这就像在subprojects { ... }
中包装任务声明一样简单。您还必须从代码中删除所有出现的project.
,以及整个baseName
行。 (无论如何,所有这些都是多余的。)
new File(project.buildDir.path)
与buildDir
相同。而不是logger.info("Tar bundle :: ")
,您可能需要doFirst { logger.info("Tar bundle :: ") }
。否则,无论执行哪个任务,都会记录每个构建的消息。