Ant Exec环境变种

时间:2010-05-28 20:18:38

标签: ant

我遇到一个问题,我不想在调用调用exec任务的ant目标之前调用setEnv.sh文件。

现在我有办法将环境变量保存在setenv.properties文件中 key =值表示法。

exec任务由于某种原因没有看到.properties文件中设置的变量.... (我知道我可以使用env标签但是setenv.properties是动态生成的)

setenv.properties:

HELLO=XYZ

我的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}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

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

当您将元素放在元素之外时,它将在执行任何目标之前进行全局计算。将标记放在元素之前和标记内部的行上会延迟对setenv.properties文件的评估,直到最后一刻,并且在“test”目标之前的目标运行生成setenv.properties文件之后。 / p>