2015-12-14 13 views
9

Tek bir Kopyalama görevinde bir dizi dosyayı ve tüm dizinleri başka bir dizine kopyalamak istiyorum. Tek tek dosyaları ve içeriğini dizinleri kopyalayabilirim, ancak dizinin kendisini nasıl kopyalarım?Dizinde Kopyalama görevini kullanarak bir dizini kopyalama

Bu benim görevdir:

task myTask(type: Copy) { 
    from 'path/to/file' 
    from 'path/to/dir' 
    into 'path/to/target' 
} 

hangi kopyalar dosya Tamam, ama dir sadece dosyaları. path/to/target/dir (path/to/target içinde değil) dir içeriğinin sonuna kadar istiyorum.

task myTask(type: Copy) { 
    from 'path/to/file' 
    from 'path/to' 
    into 'path/to/target' 
    include 'dir' 
} 

Ama bu isim çarpışmaları eğilimli:

ben kullanarak bir işi etrafında buldum. Aslında kopyalamak için birçok dosya ve dizin var ve bunu tek bir görev yapmak istiyorum.

cevap

5

here veya here: "Temel Bilgilerin Ötesinde Gradle" () başlıklı soruya doğrudan yanıt veren sayfa 3'e tıklayın (Dönüştürme Dizin Yapısı).

task myTask(type: Copy) { 
     from 'path/to/file' 
     from 'path/to/dir' { 
      into 'dir' 
     } 
     into 'path/to/target' 
    } 

sınırlama dinamik kaynağından ikinci seviyesi hedef dizini (dir) adını belirlemek olmaz, ancak o:

şöyle bir çözüm olabilir için örneğe uygulanan temiz bir yaklaşım.

+0

vay, cevabım – AdamSkywalker

+0

@adamdan çok farklıdır, çünkü bu sizinkilerden daha iyi bir çözümdür. daha fazla "OO" - Davranışların kişiselleştirilmesi komutta yer alırken, sizinki daha çok bir geri çağırma veya başka bir komut olarak – Bohemian

+0

@Bohemian olarak farklı bir sırayla aynı 4 satırı görüyorum :) – AdamSkywalker

5

Ben senin sorunu için bildiğimiz tek çözüm:

task myTask(type: Copy) { 
    into 'path/to/target' 
    from 'path/to/file' 

    into ('dir') { 
     from 'path/to/dir'   
    } 
} 

into: ('dir') inşaat path/to/target/ konuma nispeten çalıştığını unutmayın

Gradle web sitesinde indirilebilir bir kitap var
+0

Bu bir gelişmedir, ancak bunu düzgün bir şekilde yapmanın bir yolu olmadığına inanamıyorum/basitçe – Bohemian