0

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

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

4

1 回答 1

1

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

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

于 2012-10-18T12:48:53.097 回答