2009-09-15 7 views

Odpowiedz

1

po uruchomieniu ant pomocą -projecthelp Arg

ant -projecthelp 

dostaniesz listę głównych celów określonych w build.xml (lub inny plik build jako zadeklarowane w linii poleceń).

12

podstawie the issue trzeba załatać ant lub używanego javascript:

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

Użycie 'setNewProperty()' potraktuje '$ {current_target}' jako niezmienny (tak jak zwykle działa Ant). Jeśli chcesz nadpisać wartość '$ {current_target}', użyj zamiast tego 'setProperty()'. – Scribblemacher

10

W mrówek 1.8.2 można użyć $ {ant.project.invoked-cele}

Jednak patrząc na popełnić logi http://svn.apache.org/viewvc?view=revision&revision=663061 Zgaduję produkty dostępne od 1.7.1

+4

Pokazuje tylko cele, które zostały początkowo uruchomione, a nie cel, w którym aktualnie się znajdujesz. –

2

Moja odpowiedź, używając 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> 

Zastosowanie:

<showtargetname property="mycurrenttarget"/>