2016-12-05 6 views
7

ワイルドカードを使用してディレクトリをコピーしたいのですが、メソッドのGradle copyタスクはワイルドカードを受け入れません。グラデルコピータスクでワイルドカードを使用する

// this doesn't work 
task copyDirectory(type: Copy) { 
     from "/path/to/folder-*/" 
     into "/target" 
} 
// this does 
task copyDirectory(type: Copy) { 
     from "/path/to/folder-1.0/" 
     into "/target" 
} 

答えて

5

はちょうどあなたが、コピーするには、このようなものを必要なディレクトリをotの正確なファイルを指定するために「を含む」タスクのプロパティを使用します。

task copyDirectory(type: Copy) { 
    from "/path/to/" 
    include 'test-*/' 
    into "/target" 
} 

更新:あなたが唯一のディレクトリの内容をコピーしたい場合はは、その後に

task copyDirectory(type: Copy) { 
    from "/path/to/" 
    include 'test-*/' 
    into "/target" 
    eachFile { 
     def segments = it.getRelativePath().getSegments() as List 
     it.setPath(segments.tail().join("/")) 
     return it 
    } 
    includeEmptyDirs = false 
} 
+0

出力フォルダtarget/test- *を作成すると、taに直接コピーされたtest- *の内容が必要になります。 rget – pnewhook

+1

あなたはあなたの質問にそのようなことを指定しなければなりません。 OK、ちょうど答えを更新して、コピー中にルートディレクトリを削除してください。 – Stanislav

関連する問題