我的 build.xml 中有以下 war 任务,即使 needxmlfile 设置为 false 当 web.xml 文件不存在时, Ant (版本1.8.2)会抱怨(“ BUILD FAILED ...部署描述符:/ 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>
答案 0 :(得分:1)
ANT documentation声明 webxml 属性是强制性的,除非 needxmlfile 属性设置为 true
尝试此操作并使用文件集来提取可选的web.xml文件。
答案 1 :(得分:1)
@ O&#39; Connor:感谢使用文件集提取web.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设置为&#34; true&#34;如果在&#34; waring&#34;。
期间找不到web.xml文件,则会导致Ant抱怨