gradle - problemas - error sdk android studio
La tarea exle de Gradle devuelve un valor de salida distinto de cero y falla la compilaciĆ³n, pero no quiero fallar y en su lugar realizar otra tarea (2)
No se puede dejar un comentario, pero otra solución si la respuesta ignoreExitValue
no funciona es simplemente rodear la línea de commandLine
con un commandLine
try { ... } catch (Exception e() { ... }
.
Tengo una tarea ejecutiva configurada de manera bastante predeterminada, algo como:
task myTask(type:Exec) {
workingDir ''.''
commandLine ''./myscript.sh''
doLast {
if(execResult == 0) {
//one thing
} else {
//another thing
}
}
}
Pero, desafortunadamente, nunca ejecuta el bloque doLast cuando el script lanza un error. En su lugar, se salta eso y falla la compilación completa con
La ejecución falló para la tarea '': project: myTask''. El ''comando'' ./myscript.sh '''' del proceso terminó con un valor de salida distinto de cero 1 "
Eso es inútil para mí. La idea general de que myscript.sh termine con un valor de salida distinto de cero es que luego pueda ejecutar algún código en respuesta a él. ¿Qué debo hacer para no fallar la compilación pero capturar el resultado y realizar una acción en respuesta? ¡Gracias por la ayuda!
TL; DR - Use ignoreExitValue = true
Cuando leí la documentación por quincuagésima vez, finalmente vi que hay una propiedad, ignoreExitValue, que por defecto es falsa. Pero si lo establece en verdadero, entonces puede realizar sus propias tareas en el bloque doLast.
task myTask(type:Exec) {
workingDir ''.''
commandLine ''./myscript.sh''
ignoreExitValue true
doLast {
if(execResult == 0) {
//one thing
} else {
//another thing
}
}
}