¿Cómo puedo obtener el valor de la hormiga objetivo actual?¿Cómo puedo obtener el valor de la hormiga objetivo actual?
¿Existe una variable especial llamada TARGET?
¿Cómo puedo obtener el valor de la hormiga objetivo actual?¿Cómo puedo obtener el valor de la hormiga objetivo actual?
¿Existe una variable especial llamada TARGET?
creo que no se puede, a menos que pasar algún tiempo de codificación de sus propias tareas personalizadas (http://ant.apache.org/manual/tutorial-writing-tasks.html)
la incorporada en propiedades que se pueden visualizar son: basedir, ant.file, ant.version, hormiga. project.name, ant.java.version
Si ejecuta utilizando la hormiga -projecthelp
arg:
ant -projecthelp
obtendrá una lista de los principales objetivos que se especifican en el build.xml (u otro fichero de construcción como declarado en la línea de comando).
Basado en the issue que tienen que parchear hormiga o utilizado javascript:
<target name="test">
<script language="javascript">
project.setNewProperty("current_target", self.getOwningTarget());
</script>
<echo>${current_target}</echo>
</target>
El uso de 'setNewProperty()' tratará a '$ {current_target}' como inmutable (que es como Ant generalmente funciona). Si desea sobrescribir el valor de '$ {current_target}', use 'setProperty()' en su lugar. – Scribblemacher
En 1.8.2 hormiga puede utilizar $ {}-objetivos ant.project.invoked
Sin embargo, mirando a la comprometerse registros http://svn.apache.org/viewvc?view=revision&revision=663061 estoy adivinando su estado disponible desde 1.7.1
Esto solo muestra los objetivos, que se lanzaron inicialmente, no el objetivo en el que se encuentra actualmente. –
Mi respuesta, utilizando 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"/>
El nombre del destino actual en ejecución? – rodrigoap