2010-05-28 8 views
1

J'ai un problème où je ne veux pas avoir à appeler un fichier setEnv.sh avant d'appeler ma cible ant qui appelle une tâche exec.Environnement Ant Exec var

Maintenant j'ai un moyen d'enregistrer les variables d'environnement dans le fichier setenv.properties dans la notation clé = valeur .

La tâche exec pour une raison quelconque ne voit pas les variables qui sont définies dans le fichier .properties .... (je sais que je pourrais utiliser la balise env mais les setenv.properties est généré dynamiquement)

setenv.properties:

HELLO=XYZ 

partie de mon build.xml:

<property file="setenv.properties"/> 
<target name="test" depends="setEnv"> 
    <exec executable="/bin/ksh" newenvironment="false"> 
    <arg value="test.ksh" /> 
    </exec> 
</target> 

test.sh:

echo ${HELLO} 

Des pensées?

Répondre

0

Essayez ceci:

<target name="test" depends="setEnv"> 
    <property file="setenv.properties"/> 
    <exec executable="/bin/ksh" newenvironment="false"> 
    <arg value="test.ksh" /> 
    </exec> 
</target> 

Lorsque vous mettez l'élément extérieur de l'élément sera évalué globalement avant que les cibles sont exécutées. Mettre la balise sur la ligne avant l'élément et à l'intérieur de la balise retarde l'évaluation du fichier setenv.properties jusqu'au dernier moment possible et bien après que le fichier setenv.properties a été généré par une cible avant la cible "test".

+0

Oui, je pensais que c'était le problème originalement et généré le fichier à la main. Toujours pas de chance. Il semble que la commande Exec n'utilise pas les propriétés du fichier du tout je remarque qu'il prend dans une balise env où vous devez spécifier la valeur de la clé pares mais il semble ne pas aimer un fichier de propriétés comme une entrée – Mike

Questions connexes