无法将项目方面动态 Web 模块的版本更改为 2.5

2022-09-01 05:30:55

我从另一家公司继承了一个Java Web应用程序。我试图将其加载到Eclipse中(通过Import Maven Project),并收到一个错误,指出“无法将项目方面Dynamic Web Module的版本更改为2.5”。

我一直在四处走动,我发现的一件事是,网络.xml文件以

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

和 pom.xml 指定

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

但 .settings 文件夹包含一个包含此内容的文件

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.6"/>
  <installed facet="jst.web" version="3.0"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

我怀疑这里指定的3.0与其他地方指定的2.5相冲突。情况可能是这样吗?这种设置组合有什么方法不会导致错误吗?(旧版本的Eclipse,例如?


答案 1

简短版

试试这个:

  • 取消选择项目分面中的动态 Web 模块。右键单击项目 -> 首选项 ->项目方面
  • 然后再次运行 Maven -> Update Project

长版

在学习一些eclipse动态Web/spring东西时,我多次遇到过这个问题,而其他解决方案都没有可靠地解决我的问题或帮助我了解导致问题的原因。我想我开始了。

因此,当您运行 Maven -> 更新项目时,m2e(我假设)正在将动态 Web 模块添加到项目方面。添加是这里的关键词。因此,当我进入并更新网络时.xml[...]http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd“ 版本 =”2.3“> [...]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“ 版本 =”2.5“>

我收到错误“无法将项目方面动态Web模块的版本更改为2.5”。

当我尝试这样做时,3.0也是如此。

看起来m2e能够将其添加到您的项目中,但就像错误说的那样,一旦设置它就无法更改它。因此,只需在项目分面页面中取消选择它即可。点击 确定 保存您的首选项 并再次运行 Maven Update。

Eclipse Project Facets Dynamic Web Module

不需要在你的pom中包含javax.servlet.xml如果你添加了一个服务器(如tomcat)的方面。

Servlet-Api included in libraries


答案 2

请参阅无法将项目方面动态 Web 模块的版本更改为 3.0?

关闭项目,并直接更新位于项目 .settings 文件夹中的文件“org.eclipse.wst.common.project.facet.core.xml”。


推荐