在 Ant 脚本中覆盖环境变量

发布于 2024-12-06 20:58:54 字数 388 浏览 0 评论 0原文

我遇到一个问题,我的自动化构建环境需要使用与运行生成构建的实际委托脚本不同的 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 是不可变的

I have an issue where my automated build environment necessitates a different version of ant than the actual delegated scripts being run to produce the build.

I do not have an environmental variable for ANT_HOME.
I throw my CI environment the ANT_HOME to a directory of ant-1.7.0
But i need to override or unset ANT_HOME to a directory of ant-1.6.5 so the targets I call don't inherit the ANT_HOME, and run out of the 1.7.0 folder.

Can anyone think of a good way to do this? I can't modify the delegated targets of the build script but I can modify anything in the front end.

I'm using Cruisecontrol2.8.4 and the aforementioned ant versions.

Edit: The build targets I call set their own ANT_HOME to the 1.6.5 folder but it is being ignored as the previously set ANT_HOME to invoke cruisecontrol is immutable

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剧终人散尽 2024-12-13 20:58:54

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

在您的 ant 脚本中...

导入 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,从而允许再次设置它。

You can unset properties with AntContrib.

In your ant script...

Import AntContrib:

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

Do the unset:

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

This removes ANT_HOME from the current set of properties allowing it to be set again.

装纯掩盖桑 2024-12-13 20:58:54

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

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

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

Try setting the anthome attribute of the ant builder in your cruisecontrol configuration file :

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

This should call your version of ant and presumably all called ant scripts will also use this version.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文