Comment puis-je obtenir la valeur de la fourmi cible actuelle?Comment puis-je obtenir la valeur de la fourmi cible actuelle?
Existe-t-il une variable spéciale appelée TARGET?
Comment puis-je obtenir la valeur de la fourmi cible actuelle?Comment puis-je obtenir la valeur de la fourmi cible actuelle?
Existe-t-il une variable spéciale appelée TARGET?
Je pense que vous ne pouvez pas, à moins que vous passez du temps à coder vos propres tâches personnalisées (http://ant.apache.org/manual/tutorial-writing-tasks.html)
Les propriétés Incorporé vous pouvez afficher sont: basedir, ant.file, ant.version, fourmi. project.name, ant.java.version
Si vous exécutez fourmi en utilisant la -projecthelp
arg:
ant -projecthelp
vous obtiendrez une liste des principales cibles spécifiées dans le build.xml (ou tout autre fichier de construction comme déclaré sur la ligne de commande).
Basé sur the issue vous devez patcher javascript fourmi ou utilisé:
<target name="test">
<script language="javascript">
project.setNewProperty("current_target", self.getOwningTarget());
</script>
<echo>${current_target}</echo>
</target>
L'utilisation de 'setNewProperty()' traitera $ {current_target} 'comme étant immuable (ce qui fonctionne habituellement avec Ant). Si vous voulez remplacer la valeur de $ {current_target} ', utilisez' setProperty() 'à la place. – Scribblemacher
En 1.8.2 ant, vous pouvez utiliser $ {ant.project.invoked-cibles}
Cependant, en regardant la engager les journaux http://svn.apache.org/viewvc?view=revision&revision=663061 Je devine que son disponible depuis 1.7.1
Ceci affiche uniquement les cibles initialement lancées et non la cible dans laquelle vous vous trouvez. –
Ma réponse, en utilisant 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>
Utilisation:
<showtargetname property="mycurrenttarget"/>
Le nom de la cible en cours d'exécution en cours? – rodrigoap