Come posso ottenere il valore dell'attuale form target?Come posso ottenere il valore del form attuale del target?
Esiste una variabile speciale denominata TARGET?
Come posso ottenere il valore dell'attuale form target?Come posso ottenere il valore del form attuale del target?
Esiste una variabile speciale denominata TARGET?
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
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).
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>
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
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
Questo mostra solo gli obiettivi, che sono stati inizialmente lanciati, non la destinazione in cui ci si trova attualmente. –
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"/>
Il nome del target corrente in esecuzione? – rodrigoap