J'essaye de déboguer un macrodef dans Ant. Je n'arrive pas à trouver un moyen d'afficher le contenu d'un paramètre envoyé en tant qu'élément.Ant macrodef: Existe-t-il un moyen d'obtenir le contenu d'un paramètre d'élément?
<project name='debug.macrodef'>
<macrodef name='def.to.debug'>
<attribute name='attr' />
<element name='elem' />
<sequential>
<echo>Sure, the attribute is easy to debug: @{attr}</echo>
<echo>The element works only in restricted cases: <elem /> </echo>
<!-- This works only if <elem /> doesn't contain anything but a
textnode, if there were any elements in there echo would
complain it doesn't understand them. -->
</sequential>
</macrodef>
<target name='works'>
<def.to.debug attr='contents of attribute'>
<elem>contents of elem</elem>
</def.to.debug>
</target>
<target name='does.not.work'>
<def.to.debug attr='contents of attribute'>
<elem><sub.elem>contents of sub.elem</sub.elem></elem>
</def.to.debug>
</target>
</project>
Exemple exécuté:
$ ant works
...
works:
[echo] Sure, the attribute is easy to debug: contents of attribute
[echo] The element works only in restricted cases: contents of elem
...
$ ant does.not.work
...
does.not.work:
[echo] Sure, the attribute is easy to debug: contents of attribute
BUILD FAILED
.../build.xml:21: The following error occurred while executing this line:
.../build.xml:7: echo doesn't support the nested "sub.elem" element.
...
donc je suppose que je dois soit un moyen d'obtenir le contenu du <elem />
dans une propriété en quelque sorte (une mise en œuvre de macrodef étendu pourrait avoir cela), ou je besoin d'un sorte de <element-echo><elem /></element-echo>
qui pourrait imprimer n'importe quel arbre XML que vous avez mis à l'intérieur. Est-ce que quelqu'un sait d'une implémentation de l'un ou l'autre? Tout autre moyen imprévu d'obtenir les données est bien entendu également le bienvenu.
Le '' élément était exactement ce que je cherchais, merci! –
clacke
En bonus, le '' fonctionne même sans le traitement supplémentaire pour ajouter les en-têtes XML (testé sur ant 1.8.4). –