unico turnos svt svf solicitar sistema simulador servicio puntos placas paginas matricula licencias ant

ant - turnos - ¿Cómo obtengo el valor de retorno de un ejecutivo?



ant turnos (2)

<target name="CheckState"> <exec executable="${App.path}"/> </target>

En esta tarea, el ejecutable devolverá un valor que indicará el estado de mi aplicación. ¿Cómo podría obtener el valor devuelto en el archivo de compilación Ant. Usaré este valor para determinar algún comportamiento.


Aquí hay una forma genérica de verificar el resultado y mostrar el resultado de la ejecución solo si el proceso devuelve un código de falla.

<property name="my.project.tmp.exec.output" value="${tmp.dir}/exec-output.txt"/> <target name="my.project.my.task"> <exec executable="${App.path}" output="${my.project.tmp.exec.output}" resultproperty="my.project.my.task.result" failonerror="false"/> <loadfile srcfile="${my.project.tmp.exec.output}" property="my.project.my.task.output" /> <fail message="ERROR: ${my.project.my.task.output}"> <condition> <not> <equals arg1="${my.project.my.task.result}" arg2="0"/> </not> </condition> </fail> <delete file="${my.project.tmp.exec.output}"/> </target>


Utilice los resultproperty y failonerror de la tarea exec , por ejemplo:

<target name="CheckState"> <exec executable="${App.path}" resultproperty="App.state" failonerror="false"/> <echo message="App state was: ${App.state}" /> </target>

Cotización de los documentos de tareas de exec Errores y códigos de retorno :

Por defecto, el código de retorno de un ejecutivo es ignorado; cuando establece failonerror = "true", entonces cualquier fallo de señalización de código de retorno (específico del sistema operativo) hace que la compilación falle. Alternativamente, puede establecer la propiedad de resultado con el nombre de una propiedad y asignarla al código de resultado (salvo la inmutabilidad, por supuesto).

Si el intento de iniciar el programa falla con un código de error dependiente del sistema operativo, se detiene la compilación a menos que failifexecutionfails esté configurado como falso. Puede usar eso para ejecutar un programa si existe, pero de lo contrario no haga nada.

¿Qué significan esos códigos de error? Bueno, son dependientes del sistema operativo. En las cajas de Windows hay que mirar la documentación; el código de error 2 significa "no hay tal programa", lo que generalmente significa que no está en la ruta. Cada vez que vea un error de este tipo en cualquier tarea Ant, generalmente no es un error Ant, sino un problema de configuración en su máquina.