tag practices delete create crear best git variables groovy gradle task

practices - git rename tag



Gradle: pasando la variable de una tarea a otra (2)

Creo que las propiedades globales deben evitarse y gradle le ofrece una buena manera de hacerlo agregando propiedades a una tarea:

task task1 { doLast { task1.ext.variable = "some value" } } task task2 { dependsOn task1 doLast { println(task1.variable) } }

Quiero pasar una variable de una tarea a otra, en el mismo archivo build.gradle. Mi tarea de primer grado extrae el último mensaje de confirmación y necesito que este mensaje pase a otra tarea. El código está abajo. Gracias por la ayuda de antemano.

task gitMsg(type:Exec){ commandLine ''git'', ''log'', ''-1'', ''--oneline'' standardOutput = new ByteArrayOutputStream() doLast { String output = standardOutput.toString() } }

Quiero pasar la variable ''salida'' a la tarea a continuación.

task notifyTaskUpcoming << { def to = System.getProperty("to") def subj = System.getProperty(''subj'') def body = "Hello... " sendmail(to, subj, body) }

Quiero incorporar el mensaje git en "cuerpo".


Puede definir una variable de output fuera del método doLast , pero en la raíz del script y luego usarla en otras tareas. Solo por ejemplo:

//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

Aquí hay 2 tareas definidas. Task2 depende de Task1 , lo que significa que el segundo se ejecutará solo después del primero. La variable de tipo String se declara en la raíz del script de construcción y se inicializa en el método task1 doLast (nota, << es igual a doLast ). Luego la variable se inicializa, podría ser utilizada por cualquier otra tarea.