Je souhaite que mon script de génération fonctionne correctement pour les environnements de publication et de développement.
Pour cela, je voudrais définir une propriété dans ant, appelez-la (par exemple) fileTargetName
fileTargetName
obtiendra sa valeur de la variable d'environnement RELEASE_VER
si elle est disponible, si elle n'est pas disponible, elle obtiendra la valeur par défaut de dev
Nous vous remercions de vous aider avec les instructions <condition><value></condition>
& <property>
pour le faire fonctionner.
Un exemple tiré de la documentation Ant sur la manière d’obtenir une variable d’environnement dans une propriété:
<property environment="env"/>
<echo message="Number of Processors = ${env.NUMBER_OF_PROCESSORS}"/>
<echo message="ANT_HOME is set to = ${env.ANT_HOME}"/>
Dans votre cas, vous utiliseriez ${env.RELEASE_VER}
.
Ensuite, pour la partie conditionnelle, la documentation ici indique qu'il existe trois attributs possibles:
Attribut Description Obligatoire Propriété Nom de la propriété à définir. Yes Value Valeur à laquelle définir la propriété. La valeur par défaut est "true". No Else Valeur sur laquelle définir la propriété si la condition No évalue à faux. Par défaut, la propriété sera rester non réglé. Depuis Ant 1.6.3
Mettre ensemble:
<property environment="env"/>
<condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev">
<isset property="env.RELEASE_VER" />
</condition>
Vous n'avez pas besoin d'utiliser un <condition>
pour cela. Les propriétés de Ant sont immuable , vous pouvez donc simplement utiliser ceci:
<property environment="env"/>
<property name="env.RELEASE_VER" value="dev"/>
Si la variable d'environnement RELEASE_VER
est définie, la propriété tirera sa valeur de l'environnement et la deuxième instruction <property>
n'aura aucun effet. Sinon, la propriété sera supprimée après la première instruction et la deuxième instruction définira sa valeur sur "dev"
.
Je suis sûr qu'il existe des moyens plus faciles que cela, mais que diriez-vous:
<project name="example" default="show-props">
<property environment="env" />
<condition property="fileTargetName" value="${env.RELEASE_VER}">
<isset property="env.RELEASE_VER" />
</condition>
<condition property="fileTargetName" value="dev">
<not>
<isset property="env.RELEASE_VER" />
</not>
</condition>
<target name="show-props">
<echo>property is ${fileTargetName}</echo>
</target>
</project>