0

在我们的构建中,我们有这些“组件”目录。子项目使用不同的组件集,这些组件的内容必须复制到构建目录中。因此,假设每个子项目将包含的组件列表定义为: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看起来很有希望的属性,但我真的无法找到让它工作的方法。

4

1 回答 1

2
task copy(type: Copy) {
    into buildDir
    components.each {
        from "components/$it"
    }
}
于 2013-10-22T14:48:46.073 回答