ant - resumen - ¿Cómo puedo obtener el valor de la hormiga objetivo actual?
la liebre y la tortuga (5)
Creo que no puede, a menos que dedique algún tiempo a codificar sus propias tareas personalizadas ( http://ant.apache.org/manual/tutorial-writing-tasks.html )
Las propiedades integradas que puede visualizar son: basedir, ant.file, ant.version, ant.project.name, ant.java.version
¿Cómo puedo obtener el valor de la hormiga objetivo actual?
¿Existe una variable especial llamada TARGET?
Si ejecuta la hormiga usando el -projecthelp
arg:
ant -projecthelp
obtendrá una lista de los objetivos principales especificados en build.xml (u otro archivo de compilación según lo declarado en la línea de comandos).
En la hormiga 1.8.2 puedes usar $ {ant.project.invoked-targets}
Sin embargo, al mirar los registros de confirmación http://svn.apache.org/viewvc?view=revision&revision=663061 supongo que estará disponible desde 1.7.1
Mi respuesta, usando antcontrib
<macrodef name="showtargetname">
<attribute name="property"/>
<sequential>
<!-- make temporary variable -->
<propertycopy name="__tempvar__" from="@{property}"/>
<!-- Using Javascript functions to convert the string -->
<script language="javascript"> <![CDATA[
currValue = [project-name].getThreadTask(java.lang.Thread.currentThread()).getTask().getOwningTarget().getName();
[project-name].setProperty("__tempvar__", currValue);
]]>
</script>
<!-- copy result -->
<var name="@{property}" value="${__tempvar__}"/>
<!-- remove temp var -->
<var name="__tempvar__" unset="true"/>
</sequential>
</macrodef>
Uso:
<showtargetname property="mycurrenttarget"/>
En función del problema, debes parchar una hormiga o usar javascript:
<target name="test">
<script language="javascript">
project.setNewProperty("current_target", self.getOwningTarget());
</script>
<echo>${current_target}</echo>
</target>