Frage

Ich übersehe wahrscheinlich etwas ziemlich Wesentliches/Offensichtliches, aber wie kann ich eine Aufgabe erstellen, die immer für jede Aufgabe/jedes Ziel ausgeführt wird?

Ich kann so etwas tun:

task someTask << {
    println "I sometimes run"
}
println "I always run"

Viel wünschenswerter wäre es jedoch, den immer laufenden Teil in einer Aufgabe zu haben.

Der nächste Punkt, dem ich gekommen bin, ist:

task someTask << {
    println "I sometimes run"
}

println "I always run"

void helloThing() {
    println "I always run too. Hello?"
}

helloThing()

Die Verwendung einer Methode ist also eine „ok“-Lösung, aber ich hatte gehofft, dass es eine Möglichkeit gibt, eine Aufgabe gezielt festzulegen/wiederzuverwenden.

Hoffentlich hat jemand eine Möglichkeit, dies zu tun.:) :)

War es hilfreich?

Lösung

Angenommen, das Ziel besteht darin, Systeminformationen zu drucken, könnten Sie die Informationen entweder einfach immer in der Konfigurationsphase drucken (außerhalb einer Aufgabendeklaration) und eine Dummy-Aufgabe haben systemStatus das bringt nichts (da die Informationen sowieso gedruckt werden).Oder Sie können es als reguläre Aufgabe implementieren und durch Hinzufügen sicherstellen, dass die Aufgabe immer ausgeführt wird ":systemStatus" als erstes Element von gradle.startParameter.taskNames (eine Liste von Zeichenfolgen), die simuliert, dass jemand ständig tippt gradle :systemStatus ....Oder Sie könnten einen Haken nutzen, z gradle.projectsLoaded { ... } um die Informationen dort auszudrucken.

Andere Tipps

Dies befestigt in jedem Projekt in jedem Projekt eine Verschlüsse an jeder Aufgabe in jedem Projekt:

generasacodicetagpre.

Wenn Sie die Funktion / Schließung benötigen, die nur einmal pro Build aufgerufen werden soll, vor alle Aufgaben aller Projekte, verwenden Sie diese:

generasacodicetagpre.

Wenn Sie die Funktion / Schließung benötigen, um nur einmal pro Build aufgerufen zu werden, nach alle Aufgaben aller Projekte aller Projekte, verwenden Sie diese:

generasacodicetagpre.

What's wrong with invoking it straight from the root build.gradle?

task init << {
    println "I always run"
}

tasks.init.execute()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top