web.xml缺失,<failOnMissingWebXml>设置为true
考虑:
当我在Eclipse中创build一个简单的Maven项目时,我得到这个错误:
web.xml缺失,
<failOnMissingWebXml>
设置为true
我该如何解决这个问题?
你也可以这样做:
- 在Project Explorer中右键单击Deployment Descriptor 。
- 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你的项目源码。
以下是您可以遵循的步骤:
- 您可以通过右键单击您的项目,然后打开其属性对话框,然后点击“部署程序集”,您可以在其中添加Folder / src / main / webapp。 保存设置,然后,
- 转到Eclipse菜单项目 – >清理…并清理项目,错误应该消失。
(我用Eclipse Mars对此进行了validation)
我也有同样的问题。 经过学习和search,我已经解决了我的问题:
右键单击项目文件夹,转到Java EE Tools
,selectGenerate Deployment Descriptor Stub
。 这将在文件夹src/main/webapp/WEB-INF
创buildweb.xml
。
如果您使用Spring Tool Suite,则生成部署描述符存根选项将在Java EE工具下移动,以便您:
- 右键点击你的项目
- selectJava EE工具
- 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中删除文件
对于带有web.xml的Project,可以在 Project – > Properties – > Deployment Assembly中添加Folder src / main / webapp。 保存更改。 清理项目开始。
对于web.xml不存在的项目,请在属性标记下将pom.xml中的failOnMissingWebXml设置为false。