2009-09-15 14 views

Antwort

1

Ich denke, man kann es nicht, es sei denn, Sie einige Zeit Codierung Ihre eigenen Aufgaben (http://ant.apache.org/manual/tutorial-writing-tasks.html)

Die integrierten Eigenschaften verbringen können Sie sich anzeigen lassen, sind: basedir, ant.file, ant.version, Ameise. project.name, ant.java.version

1

Wenn Sie mit der -projecthelp arg Ameise laufen:

ant -projecthelp 

Sie eine Auflistung der wichtigsten Ziele angegeben in der build.xml (oder einem anderen Build-Datei erhalten wird als auf der Kommandozeile deklariert).

12

Basierend auf the issue Sie haben Javascript Ameise oder verwendet patchen:

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

Mit 'setNewProperty()' wird '$ {current_target}' als unveränderlich behandelt (so funktioniert Ant normalerweise). Wenn Sie den Wert von $ {current_target} 'überschreiben möchten, verwenden Sie stattdessen' setProperty() '. – Scribblemacher

10

In ant 1.8.2 Sie $ verwenden können {ant.project.invoked-Ziele}

jedoch bei der Suche Commit-Protokolle http://svn.apache.org/viewvc?view=revision&revision=663061 ich vermute, seine seit 1.7.1

+4

Dies zeigt nur die Ziele, die ursprünglich gestartet wurden, nicht das Ziel, in dem Sie sich gerade befinden. –

2

Meine Antwort zur Verfügung, mit 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> 

Verbrauch:

<showtargetname property="mycurrenttarget"/>