【问题标题】:Ant Exec environment varAnt Exec 环境变量
【发布时间】: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}

有什么想法吗?

【问题讨论】:

    标签: ant


    【解决方案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 标签,您必须在其中指定键值解析,但它似乎不像属性文件作为输入
    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    相关资源
    最近更新 更多