我很确定以前曾经问过这个问题但是我花了很长时间用Google搜索后似乎无法找到正确答案... :)
无论如何,在我们的构建服务器中,我们有两(2)个不同版本的Grails和Java在运行;一个是1.3.3,JDK 1.5,而另一个是1.3.6,JDK 1.6。现在,在为这两个项目构建/创建WAR文件时,我们非常需要通过ANT脚本自动切换GRAILS_HOME和JAVA_HOME的环境变量...我是一个总noob>。<
考虑:
...
<target name="clean">
...
</target>
<target name="war" depends="clean">
...
</target>
...
如果我在clean
完成时设置了env't变量,那么当运行war
时它将不一样(我尝试使用批处理文件和即使它有效,它也很混乱,而不是干......因此,我正在寻找替代方案。)
现在,我已经看到macrodef
在几个论坛上被抛出,但我似乎无法得到关于如何在这种情况下做到这一点的明确示例。关于我能做什么或指点的任何建议?
任何帮助都将不胜感激。
非常感谢!
答案 0 :(得分:3)
我有一个类似的用例,我也在谷歌搜索相同的。直到现在我已经有了这些,明天我会尝试这些办公室。
<java classname="ShowJavaVersion" classpath="."
jvm="path-to-java14-home/bin/java" fork="true"
taskname="java1.4">
<property environment="env"/>
<exec ...>
<env key="PATH" path="${env.PATH}:${basedir}/bin"/>
</exec>
执行批处理文件。