Existe-t-il un moyen de réattribuer la valeur de la tâche property
d'Ant? Ou existe-t-il une autre tâche disponible à cet effet?
Réponses
Trop de publicités?Vous ne pouvez pas changer la valeur d'une propriété dans Ant.
Si vous avez des tâches Ant que vous voulez exécuter à plusieurs reprises en passant des valeurs différentes, je recommande la tâche macrodef
car vous pouvez exécuter le même macro plusieurs fois en passant des attributs différents.
Par exemple:
Remarquez que ${property}
est utilisé pour faire référence aux propriétés et @{attribute}
est utilisé pour faire référence aux attributs passés à la tâche .
Les propriétés sont immuables en ant. Mais ce n'est pas une limitation aussi terrible qu'elle peut sembler. Il existe toute une classe de langages de programmation où (la plupart des) variables sont constantes et pourtant elles parviennent à faire des choses ceci s'appelle la "programmation fonctionnelle."
Vous pouvez "modifier" les valeurs utilisées par différentes tâches en dérivant de nouvelles propriétés modifiées à partir des anciennes, ou en changeant les paramètres lors de l'appel des tâches avec les tâches subant
ou antcall
. Si vous êtes créatif, vous trouverez généralement un moyen de résoudre votre problème.
Il existe plusieurs options que vous pouvez faire :
- Au lieu de , vous pouvez utiliser d'ant-contrib. La variable peut être réinitialisée selon les besoins.
- Utilisez qui permet de réinitialiser une propriété dans une portée "bloc" (par exemple, dans une cible).
-
Utilisez un
script
(par exemple, Groovy) à l'intérieur d'ant qui permet de réinitialiser une propriété :properties.propertyName = "propertyValue"
Ou définissez une macro comme ceci et utilisez-la:
properties["@{name}"] = "@{value}"
- Réponses précédentes
- Plus de réponses