Je veux passer une variable d'une tâche à une autre, dans le même fichier build.gradle. Ma première tâche Gradle extrait le dernier message de validation et j'ai besoin que ce message soit transmis à une autre tâche. Le code est ci-dessous. Merci d'avance pour votre aide.
task gitMsg(type:Exec){
commandLine 'git', 'log', '-1', '--oneline'
standardOutput = new ByteArrayOutputStream()
doLast {
String output = standardOutput.toString()
}
}
Je veux passer la variable "sortie" dans la tâche ci-dessous.
task notifyTaskUpcoming << {
def to = System.getProperty("to")
def subj = System.getProperty('subj')
def body = "Hello... "
sendmail(to, subj, body)
}
Je veux incorporer le message git dans 'body'.
Vous pouvez définir une variable output
en dehors de la méthode doLast
, mais dans la racine du script, puis l'utiliser simplement dans d'autres tâches. Par exemple:
//the variable is defined within script root
def String variable
task task1 << {
//but initialized only in the task's method
variable = "some value"
}
task task2 << {
//you can assign a variable to the local one
def body = variable
println(body)
//or simply use the variable itself
println(variable)
}
task2.dependsOn task1
Voici 2 tâches définies. Task2
dépend de Task1
, cela signifie que le second ne fonctionnera qu'après le premier. Le variable
de type String est déclaré dans la racine du script de génération et initialisé dans task1
doLast
méthode (note, <<
est égal à doLast
). Ensuite, la variable est initialisée, elle pourrait être utilisée par n'importe quelle autre tâche.
Je pense que les propriétés globales doivent être évitées et gradle vous offre une belle façon de le faire en ajoutant des propriétés à une tâche:
task task1 {
doLast {
task1.ext.variable = "some value"
}
}
task task2 {
dependsOn task1
doLast {
println(task1.variable)
}
}