web.xml缺失,<failOnMissingWebXml>设置为true

考虑:

在这里输入图像说明

当我在Eclipse中创build一个简单的Maven项目时,我得到这个错误:

web.xml缺失, <failOnMissingWebXml>设置为true

我该如何解决这个问题?

你也可以这样做:

  1. Project Explorer中右键单击Deployment Descriptor
  2. select生成部署描述符存根

它将在src / main / webapp中生成WEB-INF文件夹,并在其中生成一个web.xml文件

在这里输入图像说明

这是一个maven错误。 它表示它正在等待项目中的web.xml文件,因为它是一个web应用程序,如<packaging>war</packaging> 。 但是,对于最近的Web应用程序,web.xml文件是完全可选的。 Maven需要赶上这个惯例。 把这个添加到你的maven pom.xml ,让maven追上来,而且你不需要为你的项目添加一个无用的web.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> 

这是比添加一个空的web.xml更好的解决scheme,因为这样你的最终产品保持干净,你只需要改变你的构build参数。

对于更多的当前版本的maven,你也可以使用较短的版本:

 <properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties> 

如果在/ src / main / webapp / WEB-INF下已经有了web.xml,但仍然出现“web.xml丢失并且设置为true”的错误,则可以检查是否包含/ src / main / webapp你的项目源码。

以下是您可以遵循的步骤:

  1. 您可以通过右键单击您的项目,然后打开其属性对话框,然后点击“部署程序集”,您可以在其中添加Folder / src / main / webapp。 保存设置,然后,
  2. 转到Eclipse菜单项目 – >清理…并清理项目,错误应该消失。

(我用Eclipse Mars对此进行了validation)

我也有同样的问题。 经过学习和search,我已经解决了我的问题:

右键单击项目文件夹,转到Java EE Tools ,selectGenerate Deployment Descriptor Stub 。 这将在文件夹src/main/webapp/WEB-INF创buildweb.xml

如果您使用Spring Tool Suite,则生成部署描述符存根选项将在Java EE工具下移动,以便您:

  1. 右键点击你的项目
  2. selectJava EE工具
  3. select生成部署描述符存根选项

这将在src / main / webapp / WEB-INF /文件夹中创buildweb.xml文件,当然也会从Maven的pom.xml文件中删除错误。

在这里输入图像说明

你也可以做这个不那么冗长的东西

 <properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties> 

Eclipse会识别不正确的默认webapp目录。 所以我们应该用maven-war-plugin清楚地说明。

 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <webappDirectory>src/main/webapp</webappDirectory> </configuration> </plugin> </plugins> </build> 

保存此设置后,如果将其删除,错误将永远不会发生。 (我无法解释为什么。)

我有同样的问题,即使我有'src/main/webapp/WEB-INF/'文件夹与正确的web.xml

问题消失后,我重新创build(maven-> eclipse)configuration与Maven build..我执行mvn eclipse:clean eclipse:eclipse

然后我使用Maven -> Update Project添加(eclipse-> maven)插件特定的选项。

做这个:

转到并右键单击部署描述符,然后单击生成部署描述符存根。

我只在eclipse中遇到这个问题,在Maven命令行中一切正常,我的web.xml文件存在。 这是一个成熟的项目(已经部署在生产中)受到影响。 我的问题与eclipse元数据有关。 我的.settings /文件夹中的某个文件出现了问题,特别是org.eclipse.wst.common.component已被更改。 我能够恢复这个文件到以前的版本,在我的情况下解决了这个问题。

请注意Yuci的答案不适合我,当我试图在eclipse属性中点击部署程序集,我得到一个错误,说“当前显示的页面包含无效的值”。

创build一个web.xml只是elcipse想要的,即使没有必要。 这是如果你有servlet conatinerembedded或生活没有xml cfg像春季启动。 你只是在项目级别或全球性的eclipse中使用JavaEE(无用的东西)

 Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK 

在src / webapp中创buildWEB-INF文件夹,然后在WEB-INF文件夹中包含web.xml页面

-web / .setting和 -admin / .setting中删除文件

1

对于带有web.xml的Project,可以在 Project – > Properties – > Deployment Assembly中添加Folder src / main / webapp。 保存更改。 清理项目开始。

对于web.xml不存在的项目,请在属性标记下将pom.xml中的failOnMissingWebXml设置为false。