[JAVA] À propos de la phase de paramétrage et de la phase d'exécution de Gradle

La construction avec Gradle est divisée en trois phases: l'initialisation, la configuration et l'exécution, et la construction est effectuée dans cet ordre.

Surtout la phase de réglage et la phase d'exécution sont facilement confondues, Si vous n'êtes pas conscient de la distinction, les paramètres build.gradle que vous avez écrits peuvent ne pas fonctionner comme prévu.

Exemple

Si vous écrivez ce qui suit dans build.gradle et exécutez gradle myTask, comment sera-t-il sorti?

println name + ": " + "FIRST"

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

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

  println name + ": " + "Last"
}

println name + ": " + "LAST"

Le résultat est le suivant.

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

BUILD SUCCESSFUL

Pourquoi

Dans l'exemple ci-dessus, doFirst et doLast ont été évalués dans la phase d'exécution, et les autres ont été évalués dans la phase de configuration. Une autre méthode de description de tâche, myTask << {}, est équivalente à doLast, mais il y a un avertissement qu'elle sera abolie à l'avenir dans l'environnement de gradle 3.3.

Recommended Posts

À propos de la phase de paramétrage et de la phase d'exécution de Gradle
À propos de Bean et DI
À propos des classes et des instances
À propos de gets et gets.chomp
À propos de la redirection et du transfert
À propos de l'encapsulation et de l'héritage
À propos de Serializable et serialVersionUID
À propos de l'instruction et de l'instruction if
Configuration de JMeter et jEnv
À propos du verrouillage synchronisé et réentrant
À propos des hachages et symboles Ruby
[Java] À propos de String et StringBuilder
À peu près la même et la même valeur
Configuration et exécution de l'algorithme de description jMetal
À propos des classes et des instances (évolution)
À propos de la méthode Pluck et de la méthode ID
Prise en compte des classes et des instances
À propos du package Java et de l'importation
À propos de Ruby, modèle objet
À propos des classes et des instances Ruby
À propos des variables d'instance et attr_ *