2012-10-18 47 views
0

我想在我的根项目中创建一个任务,为一些子项目创建一个自定义TAR。创建几个子项目使用的根级别gradle任务?

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和源代码目录从子项目调用任务的一个子项目。然后将存档保存到子项目的/目标中。

这可能没有为每个子项目创建一个新的任务?

回答

1

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

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

相关问题