提示信息应该能看懂。也就是
缺少了web.xml文件
,<failOnMissingWebXml>被设置成true了。
搜索了一下,Stack Overflow上的答案解决了问题,分享一下。
目前被顶次数最多的回答原文如下:
This is a maven error. It says that it is expecting a web.xml file in your project because it is a web application, as indicated by
<packaging>war</packaging>
. However, for recent web applications a web.xml file is totally optional. Maven needs to catch up to this convention. Add this to your maven
pom.xml
to let maven catch up and you don’t need to add a useless
web.xml
to your project:
大意是说这是一个Maven错误,在最近的web应用开发中web.xml文件已经变得可有可无了。不过Maven还没有跟上这一变化,
我们只要在pom.xml文件中手动添加如下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
“告知”maven即可。这样做的好处是我们不必在项目生中成一个无用的web.xml文件。在更新版本(具体从哪一个版本开始我也不知道~~)的maven中已经不存在web.xml文件缺失的问题,我们只需要处理<failOnMissingWebXml>被设置成tue的问题即可。也就是在pom.xml中添加如下配置即可。
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
其他方案:(生成web.xml——>部署运行时文件路径)
you can do it also like this:
-
Right click on
Deployment Descriptor
in
Project Explorer
.
-
Select
Generate Deployment Descriptor Stub
.
It will generate
WEB-INF
folder in
src/main/webapp
and an
web.xml
in it.
这是被采纳方案,也就是说在项目浏览器中右键单击
Deloyment Descriptor
,选择生成部署描述符存根:
Generate Deployment Descriptor Stub
。
操作后会在项目的
src/main/webapp/WEB-INF
目录下生成web.xml文件。我按照这个方法生成了web.xml文件,但是仍然报错。如果你也是的话可以接着往下看。
Here are the steps you can follow:
-
You can check this by right clicking your project, and open its Properties dialogue, and then ”
Deployment Assembly
“, where you can
add Folder /src/main/webapp
. Save the setting, and then,
-
Go to Eclipse menu Project -> Clean… and clean the project, and the error should go away.
此时需要对src/main/webapp文件进行运行时的路径部署,以保证服务器正常运行。
也就是说需要部署一下src/main/webapp(刚生成的web.xml就在该文件夹下)文件夹,Deployment的作用是会在运行时将相应的resource复制到web服务器的相应目录下(通过Deploy Path指定),保证web应用正常运行。
经过这两步,问题解决。