我有一个 Ant 构建的脚本,可以很好地从 Eclipse 构建一个 WAR 文件,并从命令行使用 ant。
当我尝试从 Hudson 构建 WAR 时,WAR 已组装,但某些文件不在正确的位置。
这可能是什么原因造成的?
根据我的要求,我正在使用 ANT 1.8.2 和 Hudson 3.0.0。
对我来说,似乎有两个问题:
1) “basedir”需要从 Hudson 传递到我的 ANT 构建脚本。为此,我必须确保我的项目中的所有项目文件夹和文件引用都以“basedir”变量为前缀,然后我将 Hudson 配置为在其 ANT 启动配置中设置此变量:
在 Hudson 中添加以下内容:作业配置 | 构建 | 调用 ANT | 特性:
basedir=${WORKSPACE}
2)如果已经存在,我需要更改我的一些 ANT“复制”任务以显式覆盖文件:
这似乎有效:
<copy todir="${target.war.dir}/WEB-INF/classes">
...
</copy>
变成:
<copy todir="${target.war.dir}/WEB-INF/classes" failonerror="true" overwrite="true" force="true">
...
</copy>