Omk*_*kar 15 java spring-mvc maven maven-assembly-plugin maven-war-plugin
我正在开发一个纯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的配置,因此我没有.
如何确保项目构建和创建war文件没有web.xml?
Tun*_*aki 36
发生此错误的原因是maven-war-plugin,在版本2.6或更低版本中,默认情况下预期src/main/webapp/web.xml文件将出现在WAR项目中,并且未找到它.
从版本3.0.0的插件开始,web.xml 默认情况下不再强制存在a :
默认值
failOnMissingWebXml已从更改true为false.
这意味着直接升级插件可以解决问题.您可以在POM中添加以下配置:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
原因是,自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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30307 次 |
| 最近记录: |