发生此错误的原因是
maven-war-plugin,在2.6或更低版本中的,默认情况下期望
src/main/webapp/web.xmlWAR项目中存在一个文件,但找不到该文件。
使用注释并升级到3.0.0或更高版本
从插件3.0.0版本开始,
web.xml
默认情况下不再强制存在a :
的默认值
failOnMissingWebXml已从更改true为false。
这意味着升级插件可以直接解决问题。您可以在POM中添加以下配置:
<plugin> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version></plugin>
原因是从Servlet
3.0开始,
web.xmlWeb应用程序中不再需要该文件,并且可以将其替换为具有基于Java的配置的注释(MWAR-262)。但是,由于您的项目可能不使用注释来替换此文件,
web.xml因此实际上可能会丢失该文件,因此在插件的3.0.1版本中添加了健全性检查,以确保注释
@WebServlet位于WAR的编译类路径中项目(MWAR-396)。如果不是,并且
web.xml您的项目中没有文件,则默认情况下该插件仍会失败。
忽略失踪 web.xml
如果只希望插件显式忽略丢失的
web.xml文件,而不管注释的用法如何,可以将
failOnMissingWebXml参数设置为
false。示例配置为:
<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration></plugin>



