Dav*_* W. 65
这是一项<exec>任务吗?
您可以在运行<exec>任务时设置环境变量:
<exec executable="${my.command}">
<env key="foo" value="bar"/>
<arg line="some value"/>
</exec>
Run Code Online (Sandbox Code Playgroud)
您可以使用<property environment="env"/>扩展路径:
<property environment="env"/>
<exec executable="${my.command}">
<env key="PATH" value="${env.PATH}:${my.directory}"/>
</exec>
Run Code Online (Sandbox Code Playgroud)
如果这是针对某些需要环境变量的自定义任务,但是如果未设置环境变量,则不允许您在任务中设置环境变量,您可以尝试将其设置为:
<property environment="env"/>
<property name="env.foo" value="bar!bar"/>
Run Code Online (Sandbox Code Playgroud)
这可能会设置一个名为foovalue的环境变量bar!bar!.我记得有关于此的一些事情,但无法让它发挥作用.
您可以做的另一件事是让一个ant脚本执行另一个,并让第一个ant脚本设置环境值.当我必须设置时,我这样做了ANT_OPT.
在蚂蚁中,属性是不可改变的,所以David的建议如上:
<property name="env.foo" value="bar!bar"/>
Run Code Online (Sandbox Code Playgroud)
不行.
但是(使用antcontrib-library)变量是可变的,所以这有效:
<var name="env.foo" value="bar!bar"/>
Run Code Online (Sandbox Code Playgroud)
注意:要使用antcontrib-library,请从此处下载:ANT Contrib - 下载
这完成了工作,但似乎是一个卑鄙的把戏.
所以对于您的具体问题,请尝试:
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${basedir}/lib/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
<var name="env.PATH" value="some:custom:value"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72544 次 |
| 最近记录: |