在我们的构建中,我们有这些“组件”目录。子项目使用不同的组件集,这些组件的内容必须复制到构建目录中。因此,假设每个子项目将包含的组件列表定义为:project.ext.components = ['aaa', 'bbb', 'ccc']
. 它们存在于一个目录(从项目根目录)中,比如components/aaa
,components/bbb
等。我想将每个目录的内容复制到项目的build
目录中。
基本上,如果我必须把它翻译成 UNIX,我会做一系列的副本,比如:
cp -R components/aaa/* build/
cp -R components/bbb/* build/
cp -R components/ccc/* build/
有什么好方法可以做到这一点?
我可以在任务中循环project.ext.components
并使用copy
闭包,但是我将如何定义任务输入/输出?该任务不会是Copy
类型任务,而只是一个普通任务,其中包含一个doFirst
、一个循环和copy
闭包,因此我们不会像使用Copy
任务那样免费获得为我们定义的输入/输出。
我在Copy DSL中看到有一个includes
看起来很有希望的属性,但我真的无法找到让它工作的方法。