53 votes

définir la propriété ant de l'environnement avec la valeur par défaut

J'aimerais que mon script de génération agisse 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%% <condition><value></condition> & <property> pour le faire fonctionner.

76voto

Michael Myers Points 82361

Un exemple de la Fourmi de la documentation de façon à 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 devez utiliser ${env.RELEASE_VER}.

Ensuite pour la partie conventionnelle, la documentation ici dit qu'il y a trois attributs:

Attribut Description Obligatoire 
propriété Le nom de la propriété à définir. Oui 
valeur La valeur à affecter à la propriété. Par défaut à "true". Pas de 
d'autre de La valeur à affecter à la propriété si la condition N'
 renvoie la valeur false. Par défaut, la propriété
 restent indéfinis. Depuis Ant 1.6.3

De les mettre ensemble:

<property environment="env"/>
<condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev">
    <isset property="env.RELEASE_VER" />
</condition>

41voto

Jason Day Points 5624

Vous n'avez pas besoin d'utiliser un <condition> pour cette. Propriétés Ant sont immuables, de sorte que vous pouvez simplement utiliser ce:

<property environment="env"/>
<property name="env.RELEASE_VER" value="dev"/>

Si l' RELEASE_VER variable d'environnement est définie, alors la propriété prendra la valeur de l'environnement et le second <property> déclaration n'aura aucun effet. Sinon, la propriété sera unset après la première instruction, et la deuxième déclaration de définir sa valeur à "dev".

1voto

toolkit Points 27248

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>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X