组装WAR的Maven错误:使用纯Java Based Configuration构建SpringMVC项目时不需要webxml属性,也没有xml的

我正在开发一个纯Java基于配置的Spring MVC项目。 当我进行Maven干净安装时,我收到以下错误。

无法在项目上执行目标org.apache.maven.plugins:maven-war-plugin:2.2:war(default-war)SpringMVC-ShoppingCart:汇编WAR时出错:需要webxml属性(或预先存在的WEB-INF / web .xml如果在更新模式下执行) – > [帮助1]

该错误表明缺少web.xml ,但由于我使用的是基于纯Java的配置,因此我没有。

如何确保项目在没有web.xml情况下构建和创建war文件?

发生此错误的原因是,版本2.6或更低版本的maven-war-plugin默认情况下会在WAR项目中出现src/main/webapp/web.xml文件,但它找不到它。

使用注释并升级到3.0.0或更高版本

从版本3.0.0开始, 默认情况下不再强制存在web.xml

failOnMissingWebXml的默认值已从true更改为false

这意味着直接升级插件可以解决问题。 您可以在POM中添加以下配置:

  maven-war-plugin 3.0.0  

原因是,自Servlet 3.0起,Web应用程序中不再需要web.xml文件,并且可以使用注释替换以具有基于Java的配置( MWAR-262 )。 但是,由于您的项目可能不使用注释来替换此文件,在这种情况下实际上可能缺少web.xml因此在插件的3.0.1版中添加了一个完整性检查,以确保注释@WebServlet位于编译WAR项目的类路径( MWAR-396 )。 如果不是,并且项目中没有web.xml文件,则默认情况下插件仍然会失败。

忽略丢失的web.xml

如果您只是希望插件显式忽略缺少的web.xml文件,则无论注释的用法如何,都可以将failOnMissingWebXml参数设置为false 。 示例配置为:

  maven-war-plugin 2.6  false   

这是因为您没有在web项目中包含web.xml并尝试使用maven构建war。 要解决此错误,您需要在pom.xml文件中将failOnMissingWebXml设置为false。

例如:

  false  

请访问博客了解更多详情: https : //ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html