2016-12-05 16 views
7

Chciałbym skopiować katalog za pomocą wieloznacznika, jednak metoda from zadania Gradle copy nie akceptuje symboli wieloznacznych.Używanie wieloznacznika w gradle copy task

// 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" 
} 

Odpowiedz

5

Wystarczy użyć „to” własność zadanie, aby określić dokładne pliki ot katalogi trzeba skopiować, coś takiego:

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

Aktualizacja: jeśli chcesz skopiować tylko zawartość katalogów, a następnie masz do czynienia z każdym plikiem osobno, coś w tym stylu:

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

To tworzy docelowy folder wyjściowy/test- *, potrzebuję zawartości testu- * skopiowanego bezpośrednio do ta rget – pnewhook

+1

Musisz określić takie rzeczy w swoim pytaniu. OK, właśnie zaktualizowałem odpowiedź, aby usunąć główne katalogi podczas kopiowania. – Stanislav