创建几个子项目使用的根级别gradle任务?

时间:2012-10-18 12:26:41

标签: groovy gradle tar

我想在我的根项目中创建一个任务,为一些子项目创建一个自定义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。

如果不为每个子项目创建新任务,这是否可行?

1 个答案:

答案 0 :(得分:1)

如果每个子项目都应该创建自己的Tar,那么您需要为每个子项目创建一个任务。这就像在subprojects { ... }中包装任务声明一样简单。您还必须从代码中删除所有出现的project.,以及整个baseName行。 (无论如何,所有这些都是多余的。)

new File(project.buildDir.path)buildDir相同。而不是logger.info("Tar bundle :: "),您可能需要doFirst { logger.info("Tar bundle :: ") }。否则,无论执行哪个任务,都会记录每个构建的消息。