Gibt es eine Möglichkeit, das Überschreiben von Dateien zu vermeiden, wenn Task type:Copy
verwendet wird?Gradle kopieren ohne zu überschreiben
Das ist meine Aufgabe:
task unpack1(type:Copy)
{
duplicatesStrategy= DuplicatesStrategy.EXCLUDE
delete(rootDir.getPath()+"/tmp")
from zipTree(rootDir.getPath()+"/app-war/app.war")
into rootDir.getPath()+"/tmp"
duplicatesStrategy= DuplicatesStrategy.EXCLUDE
from rootDir.getPath()+"/tmp"
into "WebContent"
}
ich vermeiden wollen, dass alle Dateien angeben Verwendung auszuschließen 'Datei/file *'.
Es sieht so aus, duplicatesStrategy= DuplicatesStrategy.EXCLUDE
funktioniert nicht. Ich habe über ein Problem auf Gradle 0.9 gelesen, aber ich benutze Gradle 2.1.
Ist dieses Problem immer noch vorhanden?
Oder missverstehe ich, wie diese Aufgabe richtig verwendet werden sollte?
Dank
Was genau meinen Sie mit „Gibt es eine Möglichkeit des Überschreiben von Dateien zu vermeiden,“? Im obigen Code wird das zweite "in" das erste gewinnen (es kann nur ein Top-Level "in" geben). Auch "in" und "von" können für dieselbe Kopieraufgabe niemals identisch sein. –
Auch wenn ich diese Aufgabe ausführen Gradle die Datei in WebContent überschreiben 'Aufgabe auspacken (Typ: Copy) { \t duplicatesStrategy = DuplicatesStrategy.EXCLUDE \t von rootDir.getPath() + "/ tmp" \t in„WebContent " }' – carlitos081
Ich sehe was du meinst. 'DuplicatesStrategy' handelt von Duplikaten in Kopierquellen (' from'). Es gibt keine Konfigurationsoption, um eine 'Copy'-Aufgabe anzuweisen, Dateien, die bereits im Zielverzeichnis existieren, nicht zu überschreiben, aber Sie könnten dies wahrscheinlich mit' eachFile' erreichen. Weitere Informationen finden Sie unter "Kopieren" in der [Gradle Build Language-Referenz] (http://gradle.org/docs/current/dsl/index.html). Sie finden möglicherweise auch ein verwandtes Sample im Verzeichnis 'samples' des' gradle-all'-Downloads. –