Wie kann ich den Wert der aktuellen Ziel-Ameise erhalten?Wie kann ich den Wert der aktuellen Zielameise erhalten?
Existiert eine spezielle Variable namens TARGET?
Wie kann ich den Wert der aktuellen Ziel-Ameise erhalten?Wie kann ich den Wert der aktuellen Zielameise erhalten?
Existiert eine spezielle Variable namens TARGET?
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
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).
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>
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
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
Dies zeigt nur die Ziele, die ursprünglich gestartet wurden, nicht das Ziel, in dem Sie sich gerade befinden. –
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"/>
Der Name des laufenden Ziel? – rodrigoap