在 Ant 脚本中覆盖环境变量
我遇到一个问题,我的自动化构建环境需要使用与运行生成构建的实际委托脚本不同的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 AntContrib 取消设置属性。
在您的 ant 脚本中...
导入 AntContrib:
执行取消设置:
这将从当前属性集中删除 ANT_HOME,从而允许再次设置它。
You can unset properties with AntContrib.
In your ant script...
Import AntContrib:
Do the unset:
This removes ANT_HOME from the current set of properties allowing it to be set again.
尝试在 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.