开发者

Ant Exec environment var

I have a problem where I don't want to have to call a setEnv.sh file before i call my ant target that calls an exec task.

Right now I have a way to save the environment variables in setenv.properties file in the key=value notation.

The exec task for some reason does not see the variables that are set in the .properties file.... (I know i could use the env tag but the setenv.properties is dynamically generated)

setenv.properties:

HELLO=XYZ

part of my build.xml :

<property file="setenv.properties"/>
<target name="test" depends="setEnv">
   <exec  executable="/bin/ksh" newenvironment="false">
     <arg value="test.ksh" /&g开发者_开发技巧t; 
   </exec>
</target>

test.sh :

echo ${HELLO}

Any thoughts?


Try this:

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

When you put the element outside the element it will be evaluated globally before any targets are executed. Putting the tag on the line before the element and inside the tag delays evaluation of the setenv.properties file until the last possible moment and well after the setenv.properties file has been generated by a target run prior to the "test" target.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜