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 环境变量的主要内容,如果未能解决你的问题,请参考以下文章

ant安装环境变量配置及验证

ant安装环境变量配置及验证

Ant:无法处理环境变量集和工作目录

Jmeter+ant搭建环境

Jenkins可用环境变量列表以及环境变量的使用(Shell/Command/Maven/Ant)

Jenkins+Jmeter+Ant自动化集成环境搭建