gpt4 book ai didi

java - Maven 错误组装 WAR : webxml attribute is required when building the SpringMVC project with pure Java Based Configuration and no xml's

转载 作者:太空狗 更新时间:2023-10-29 22:49:29 27 4
gpt4 key购买 nike

我正在开发一个基于纯 Java 配置的 Spring MVC 项目。当我执行 Maven 全新安装时,出现以下错误。

Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project SpringMVC-ShoppingCart: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

错误提示缺少 web.xml,但我没有,因为我使用的是基于纯 Java 的配置。

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

最佳答案

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

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

从插件的 3.0.0 版开始,存在 web.xml is not mandatory by default anymore :

The default value for failOnMissingWebXml has been changed from true to false.

也就是说直接升级插件就可以解决问题。您可以在 POM 中添加以下配置:

<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>

原因是从 Servlet 3.0 开始,Web 应用程序不再需要 web.xml 文件,并且 can be replaced with annotations拥有基于 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>

关于java - Maven 错误组装 WAR : webxml attribute is required when building the SpringMVC project with pure Java Based Configuration and no xml's,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33390460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com