次のタスクは、ディレクトリ from/dir
以下のファイルを再帰的にコピーします。
from/dir
以下のディレクトリ階層は保たれます。
コピー先のディレクトリ to/dir
が存在しない場合は、自動的に作成されます。
task hello(type: Copy) {
from 'from/dir'
into 'to/dir'
}
Copy タスクにおいて、include や exclude でファイル名のパターンを指定することで、コピーするファイルを絞り込むことができます。
task hello(type: Copy) {
from 'from/dir'
into 'to/dir'
include '**/*.txt'
}
task hello(type: Copy) {
from 'from/dir'
into 'to/dir'
exclude '**/*.bk'
}
コピー元のディレクトリを複数指定して、一つのディレクトリにコピーすることもできます。
下記の例では、from1
ディレクトリと from2
ディレクトリ内のファイルを to
ディレクトリにコピーしています。
task hello(type: Copy) {
from 'from1'
from 'from2'
into 'to'
}
ただし、この方法だと、複数のコピー元に同じファイル名のファイルがあると、ファイルが上書きコピーされてしまいます(ツリー構造がまったく異なればセーフですが)。
下記のようにすると、コピー先にディレクトリを作って、その中にファイルをコピーすることができます。
from
のパラメータを括弧で囲むことに注意してください。
task hello(type: Copy) {
from('from1') {
into 'f1'
}
from('from2') {
into 'f2'
}
into 'to'
}
このようにすると、from1
ディレクトリ内のファイルは to/f1
に、from2
ディレクトリ内のファイルは to/f2
に、それぞれコピーされるようになります。