gradle - Datei nach der Generierung kopieren

8


Ich versuche, jar zu erstellen und danach in einen anderen Ordner zu kopieren.

%Vor%

Aber ich kann ein Problem nicht lösen. copyJarToBin Aufgabe versuche altes Glas zu kopieren. Wenn ich einen Ordner im Projekt lösche / erstelle und die Aufgabe buildApp () ausführe, erzeugt der Task createJar () die .jar-Datei, aber copyJarToBin () findet diese .jar-Datei nicht.

Könnten Sie mir helfen?
Danke.

    
wazz 04.06.2015, 06:51
quelle

3 Antworten

34

Der Schuldige ist Ihre copyJarToBin Aufgabe. wenn du es tust

%Vor%

Sie kopieren das Glas während der Konfigurationszeit mit der Methode copy . (Weitere Informationen zum Build Lifecycle finden Sie im Benutzerhandbuch zu Gravel bei Ссылка ) Sie möchten die eigentliche Kopieroperation während der Ausführungsphase (der Ausführung der Aufgabe) ausführen.

Eine Möglichkeit, das zu lösen, besteht darin, den Aufruf der Methode copy in einen doLast-Block zu verschieben:

%Vor%

Das Problem bei diesem Ansatz besteht darin, dass Sie nicht von der inkrementellen inkrementellen Build-Funktion profitieren und diese Datei jedes Mal kopieren, wenn Sie die Aufgabe ausführen, obwohl sich die Datei nicht geändert hat.

Eine bessere und idionischere Methode zum Schreiben Ihrer copyJarToBin-Aufgabe besteht darin, Ihre Aufgabenimplementierung so zu ändern, dass sie den Aufgabentyp Copy verwendet:

%Vor%

Wir können diesen Snippet sogar verbessern, indem wir die Autowire-Funktion von Gradle nutzen. Sie können die Ausgabe einer Aufgabe als Eingabe für eine andere Aufgabe deklarieren. Anstatt "build / libs / GradleJarProject.jar" zu schreiben, können Sie einfach Folgendes tun:

%Vor%

Nun müssen Sie sich nicht mehr um die Aufgabenbestellung kümmern, denn Sie wissen, dass die createJar Aufgabe ausgeführt werden muss, bevor die copyJarToBin Aufgabe ausgeführt werden kann.

    
Rene Groeschke 04.06.2015, 07:05
quelle
8

Ich denke, die obige Antwort ist irgendwie alt. Hier ist eine Antwort mit Gradle 3.3

%Vor%     
Peter T. 07.03.2017 11:16
quelle
1

Sie müssen wahrscheinlich sicherstellen, dass sie in der richtigen Reihenfolge ausgeführt werden,

%Vor%     
Theresa Forster 04.06.2015 07:05
quelle

Tags und Links