2009-09-15 12 views

risposta

1

penso che non si può, a meno che non si spende un po 'di tempo di codifica le proprie attività personalizzate (http://ant.apache.org/manual/tutorial-writing-tasks.html)

Il built-in proprietà che è possibile visualizzare sono: basedir, ant.file, ant.version, formica. project.name, ant.java.version

1

Se si esegue utilizzando la formica -projecthelp arg:

ant -projecthelp 

si otterrà un elenco dei principali obiettivi specificati nel build.xml (o un altro file build dichiarato sulla riga di comando).

12

Sulla base the issue devi patchare formica o utilizzato javascript:

<target name="test"> 
    <script language="javascript"> 
    project.setNewProperty("current_target", self.getOwningTarget()); 
    </script> 
    <echo>${current_target}</echo> 
</target> 
+0

L'uso di 'setNewProperty()' considera '$ {current_target}' come immutabile (il che è il modo in cui Ant di solito funziona). Se vuoi sovrascrivere il valore di '$ {current_target}', usa invece 'setProperty()'. – Scribblemacher

10

In 1.8.2 formica è possibile utilizzare $ {ant.project.invoked-obiettivi}

Tuttavia, guardando il commettere i registri http://svn.apache.org/viewvc?view=revision&revision=663061 sto indovinando il suo stato disponibile dal 1.7.1

+4

Questo mostra solo gli obiettivi, che sono stati inizialmente lanciati, non la destinazione in cui ci si trova attualmente. –

2

La mia risposta, utilizzando 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> 

Usage:

<showtargetname property="mycurrenttarget"/> 
Problemi correlati