J'ai un ensemble de fichiers de construction Ant imbriqués, et j'ai besoin de contrôler quelles propriétés sont héritées par chaque tâche "sub". J'essaie de les définir comme des propertysets (pour garder le code gérable) mais ceux-ci ne sont pas hérités par les sous-tâches, contrairement aux propriétés.Héritage de propriété avec des tâches imbriquées
L'exemple ci-dessous illustre le problème, foo.*
est copié dans le projet intermédiaire mais pas dans le projet inférieur. Si je définis chaque propriété à hériter explicitement, comme bar.*
, ils héritent aussi du projet bottom.
Y a-t-il un moyen d'hériter un groupe de propriétés de la même manière que les propriétés individuelles? Sans réécrire les sous-processus, y a-t-il autre chose que je pourrais essayer?
[top.xml]
<?xml version="1.0"?>
<project name="test-top">
<property name="foo.1" value="1"/>
<property name="foo.2" value="2"/>
<property name="bar.1" value="1"/>
<property name="bar.2" value="2"/>
<ant antfile="middle.xml" inheritall="false">
<propertyset>
<propertyref prefix="foo."/>
</propertyset>
<property name="bar.1" value="${bar.1}"/>
<property name="bar.2" value="${bar.2}"/>
</ant>
</project>
[middle.xml]
<?xml version="1.0"?>
<project name="test-middle">
<echo>foo ${foo.1} ${foo.2}</echo>
<echo>bar ${bar.1} ${bar.2}</echo>
<ant antfile="bottom.xml" inheritall="false"/>
</project>
[bottom.xml]
<?xml version="1.0"?>
<project name="test-bottom">
<echo>foo ${foo.1} ${foo.2}</echo>
<echo>bar ${bar.1} ${bar.2}</echo>
</project>
[SORTIE DE fourmi top.xml -f]
[echo] foo 1 2
[echo] bar 1 2
[echo] foo ${foo.1} ${foo.2}
[echo] bar 1 2
Merci Martin, et Alexander. Je m'étais posé la question d'écrire les propriétés dans un fichier mais je n'avais vu aucun moyen de le faire sans réindexer explicitement toutes les propriétés que je voulais transmettre (ie pas mieux que la solution pour 'bar. *' Ci-dessus).J'avais raté la tâche "echoproperties" car elle était listée sous "Tâches facultatives" plutôt que "tâches de base" dans la documentation Ant ... maintenant je sais! –