Modifier les propriétés dans une cible Ant
Nous utilisons beaucoup de propriétés dans nos scripts Ant, exécuté à partir d'Eclipse. Je veux mettre en place un système parallèle de déploiement qui construit le projet avec légèrement différentes valeurs de propriété, et déploie à un emplacement différent... déployer emplacement est également une propriété.
[Comment] ma nouvelle cible de mise à jour de certaines propriétés à la coutume des valeurs de test, puis exécutez la normale cible pour obtenir le résultat souhaité?
Simple exemple de script est très bienvenue, je ne connais que suffisamment de Fourmis pour s'en sortir 🙂
- Savons peu de choses sur Ant en cours d'exécution à partir d'Eclipse, mais en ligne de commande j'ai utiliser l'argument comme
-Dpame=pvalue
de spécifier les propriétés. La propriété qui est efficace est toujours celle qui est spécifiée en premier, et l'argument de ligne de commande est la première. - J'ai déjà les propriétés spécifiées dans un autre fichier de propriétés... j'ai besoin de les remplacer.
- Comment au sujet de certains de code? Que ce soit en spécifiant un nouveau fichier de propriétés est vraiment tout ce dont vous avez besoin, ou nous vous méprenez-vous ici.
- Non, un nouveau fichier de propriétés n'est pas bon. J'ai des centaines de propriétés, je veux juste que ma cible pour remplacer peut-être que 5 d'entre eux. Peut un
<target>
définir les valeurs de propriété?
Vous devez vous connecter pour publier un commentaire.
var
ne fait pas partie de l'Ant lui-même, mais c'est la seule façon que je peux trouver d'autre que le pré-réglage de la valeur de remplacement.Vous pouvez utiliser antcall (https://ant.apache.org/manual/Tasks/antcall.html) pour remplacer une propriété en utilisant des param dans le appelé la cible, par exemple, considérez cet exemple de fichier-antcall-propriétés.ant
et de voir le résultat
Noter que la valeur de la propriété a changé dans la deuxième invocation de la cible "seconde" à l'aide "param" (et la modification est propagée à des cibles appelée à l'intérieur de l'appelé cible, des "tiers" dans cet exemple), mais pas dans les autres appels (sans "param").
Toutefois, comme indiqué dans la documentation https://ant.apache.org/manual/Tasks/antcall.html,
Cela peut se voir par cette invocation:
Primordial propriétés peut être fait par le fractionnement de la logique dans des fichiers séparés qui peuvent être inclus comme une base, puis remplacé.
Par exemple, créer un fichier de base, comme
base.xml
qui se composent de toutes les propriétés par défaut et objectifs:Puis dans le fichier principal (comme
build.xml
), remplacer les propriétés puisimport
le fichier de base:Exemple sur GitHub:
National-Théâtre/base-construire-xml
.Pour une exécution parallèle, vous pouvez utiliser
parallèle
tâche.