[JAVA] Informationen zur Einstellungsphase und Ausführungsphase von Gradle

Das Erstellen mit Gradle ist in drei Phasen unterteilt: Initialisierung, Konfiguration und Ausführung. Der Build wird in dieser Reihenfolge ausgeführt.

Insbesondere die Einstellphase und die Ausführungsphase sind leicht zu verwechseln, Wenn Sie die Unterscheidung nicht kennen, funktionieren die von Ihnen geschriebenen build.gradle-Einstellungen möglicherweise nicht wie beabsichtigt.

Beispiel

Wenn Sie Folgendes in build.gradle schreiben und "gradle myTask" ausführen, wie wird es ausgegeben?

println name + ": " + "FIRST"

task myTask {
  println name + ": " + "First"

  doFirst {
    println name + ": " + "doFirst block"
  }
  doLast {
    println name + ": " + "doLast block"
  }

  println name + ": " + "Last"
}

println name + ": " + "LAST"

Das Ergebnis ist wie folgt.

gradle-test2: FIRST
myTask: First
myTask: Last
gradle-test2: LAST
:myTask
myTask: doFirst block
myTask: doLast block

BUILD SUCCESSFUL

Warum

Im obigen Beispiel wurden doFirst und doLast in der Ausführungsphase und die anderen in der Konfigurationsphase ausgewertet. Eine andere Taskbeschreibungsmethode, myTask << {}, entspricht doLast, es gibt jedoch eine Warnung, dass sie in Zukunft in der Umgebung von Gradle 3.3 abgeschafft wird.

Recommended Posts

Informationen zur Einstellungsphase und Ausführungsphase von Gradle
Über Bean und DI
Über Klassen und Instanzen
Über bekommt und bekommt.chomp
Über Weiterleiten und Weiterleiten
Über Kapselung und Vererbung
Informationen zu Serializable und serialVersionUID
Über für Anweisung und wenn Anweisung
Einrichten von JMeter und jEnv
Über synchronisierte und Wiedereintrittssperre
Über Ruby-Hashes und -Symbole
[Java] Über String und StringBuilder
Ungefähr der gleiche und der gleiche Wert
Einrichtung und Ausführung des jMetal Description-Algorithmus
Über Klassen und Instanzen (Evolution)
Über die Zupfmethode und die ID-Methode
Überlegungen zu Klassen und Instanzen
Über Java-Paket und Import
Über Ruby und Objektmodell
Informationen zu Ruby-Klassen und -Instanzen
Über Instanzvariablen und attr_ *