在Ant脚本中覆盖环境变量

时间:2011-09-28 15:54:04

标签: ant build cruisecontrol

我遇到一个问题,我的自动构建环境需要一个不同于运行的实际委派脚本的ant版本来生成构建。

我没有ANT_HOME的环境变量。 我将我的CI环境ANT_HOME扔到ant-1.7.0的目录中 但是我需要覆盖或取消将ANT_HOME设置为ant-1.6.5的目录,这样我调用的目标就不会继承ANT_HOME,并且会耗尽1.7.0文件夹。

有人能想到一个好方法吗?我无法修改构建脚本的委托目标,但我可以修改前端的任何内容。

我正在使用Cruisecontrol2.8.4和上述的ant版本。

编辑:我调用的构建目标将自己的ANT_HOME设置为1.6.5文件夹,但它被忽略,因为之前设置的ANT_HOME调用cruisecontrol是不可变的

2 个答案:

答案 0 :(得分:1)

您可以使用AntContrib取消设置属性。

在你的蚂蚁脚本......

导入AntContrib:

<taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
        <pathelement location="folderwithantcontribjar/ant-contrib-1.0b3.jar"/>
    </classpath>
</taskdef>

取消设置:

<var name="ANT_HOME" unset="true"/>

这将从当前属性集中删除ANT_HOME,允许再次设置它。

答案 1 :(得分:0)

尝试在cruisecontrol配置文件中设置ant构建器的anthome属性:

http://cruisecontrol.sourceforge.net/main/configxml.html#ant

这应该调用你的ant版本,并且可能所有被调用的ant脚本也将使用这个版本。