Ant Exec 环境变量
Posted
技术标签:
【中文标题】Ant Exec 环境变量【英文标题】:Ant Exec environment var 【发布时间】:2010-05-28 20:18:38 【问题描述】:我有一个问题,我不想在调用调用 exec 任务的 ant 目标之前调用 setEnv.sh 文件。
现在我有一种方法可以将环境变量保存在 setenv.properties 文件中 键=值表示法。
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】:试试这个:
<target name="test" depends="setEnv">
<property file="setenv.properties"/>
<exec executable="/bin/ksh" newenvironment="false">
<arg value="test.ksh" />
</exec>
</target>
当您将元素放在元素之外时,它将在执行任何目标之前进行全局评估。将标签放在元素之前的行和标签内会延迟对 setenv.properties 文件的评估,直到最后可能的时刻,并且在 setenv.properties 文件由在“测试”目标之前运行的目标生成之后很久。
【讨论】:
是的,我认为这是原来的问题并手动生成了文件。仍然没有运气。看起来 Exec 命令根本不使用文件属性我注意到它包含一个 env 标签,您必须在其中指定键值解析,但它似乎不像属性文件作为输入以上是关于Ant Exec 环境变量的主要内容,如果未能解决你的问题,请参考以下文章