我的构建中有以下战争任务.xml即使 needxmlfile 设置为 false,Ant(版本 1.8.2)也会在 web.xml 文件不存在时抱怨("构建失败...部署描述符:/home/.../web/WEB-INF/web.xml 不存在")
我错过了什么?
<target name="war" depends="build">
<mkdir dir="${build.dir}"/>
<war
needxmlfile="false"
basedir="${webroot.dir}"
warfile="${build.dir}/${project.distname}.war"
webxml="${webinf.dir}/web.xml">
<exclude name="WEB-INF/${build.dir}/**"/>
<exclude name="WEB-INF/src/**"/>
<exclude name="WEB-INF/web.xml"/>
</war>
</target>
ANT 文档指出,webxml 属性是必需的,除非 needxmlfile 属性设置为 true
尝试此操作并使用文件集拉入可选的 Web.xml 文件。
@O'Connor:感谢您使用文件集拉取网络的提示.xml。但是,我不确定您对 needxmlfile 设置为 true 是否正确(至少在我的实验中,我目睹了与您描述的相反的情况)。无论如何,最后我意识到甚至不需要文件集,因为 war Ant 任务显然将所有内容打包在 basedir 下(除非明确排除),所以我现在使用以下 war 任务,无论是否存在 web.xml 文件都有效:
<target name="war" depends="build">
<mkdir dir="${build.dir}"/>
<war
needxmlfile="false"
basedir="${webroot.dir}"
destfile="${build.dir}/${project.distname}.war">
<exclude name="WEB-INF/${build.dir}/**"/>
<exclude name="WEB-INF/src/**"/>
</war>
</target>
将 needxmlfile 设置为 "true" 会导致 Ant 在"警告"期间找不到 web.xml 文件时发出抱怨。