Warum ist mein Gradle task immer ausgeführt wird?
Wenn ich ./gradlew clean
oder ./gradlew tasks --all
ist es immer laufen meine kompilieren Aufgabe(die ich überschrieben haben, in den gradle-build-Skript wie unten)
task eclipse(overwrite: true) {
exec { commandLine = ["./play1.3.x/play", "eclipsify"] }
}
task compileJava(overwrite: true) {
exec { commandLine = ["./play1.3.x/play", "precompile"] }
}
task deleteDirs(type: Delete) {
delete 'precompiled', 'tmp'
}
//NOW, assemble needs to zip up directories precompiled, public, lib, and conf
clean.dependsOn('deleteDirs')
Verstehe ich nicht, warum das eclipse-man läuft nicht zu jeder Zeit und scheint zu funktionieren gut, während overridding das kompilieren nicht funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist sehr wichtig zu verstehen, die Unterscheidung zwischen task - Konfiguration und Aufgabe Ausführung:
Wenn Sie nicht bekommen-Konfiguration vs. Ausführung rechts sehen Sie Symptome wie z.B. sehr lange startup-Zeiten und Aufgaben scheinbar immer ausgeführt, wenn Sie nicht sollten.
Lernen, welche aufgabenformate stehen zur Verfügung und wie diese zu konfigurieren sind, schauen Sie sich die Gradle Build-Referenzhandbuch. Außerdem gibt es eine ständig wachsende Liste von Drittanbieter-plugins und der Aufgabentypen.
PS: ich habe die Aufgabe, die Namen und entfernt die
overwrite: True
(das sollte nur als letzten Ausweg verwendet), um nicht ablenken von der eigentliche Aussage meiner Antwort.Gradle nicht wissen, dass Ihre Quelle nicht geändert wurde. Für alle unbekannten status markiert er die Aufgabe als nicht up-to-date. Da Ihre Aufgabe zu 100% Ersatz von
compile
, dann ist es Ihre Verantwortung, um den status der Aufgabe.Schreiben Von Benutzerdefinierten Task-Klassen Kapitel bietet Informationen darüber, wie, um loszulegen mit inkrementellen Aufgaben.
Führen Sie Ihr Projekt mit
--info
Flagge zu sehen, warum Gradle kennzeichnetcompile
Aufgabe als nicht up-to-date.Hoffe, es hilft.