2009-09-15 10 views

Respuesta

1

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).

12

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> 
+0

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

10

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

+4

Esto solo muestra los objetivos, que se lanzaron inicialmente, no el objetivo en el que se encuentra actualmente. –

2

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"/> 
Cuestiones relacionadas