首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将项目方面动态Web模块的版本更改为2.5

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

Stack Overflow用户
提问于 2014-08-28 22:22:50
回答 10查看 88.1K关注 0票数 36

我从另一家公司继承了一款Java web应用。我正在尝试将其加载到Eclipse中(通过Import Maven项目),但得到一个错误消息:“无法将项目方面动态Web模块的版本更改为2.5”。

我仔细研究了一下,发现web.xml文件的开头是

代码语言:javascript
复制
<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指定了

代码语言:javascript
复制
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

但是.settings文件夹包含一个包含以下内容的文件

代码语言:javascript
复制
<?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的旧版本,例如?)

EN

回答 10

Stack Overflow用户

发布于 2015-01-20 06:57:08

简短版本

试试这个:

  • 在您的项目方面取消选择Dynamic Web Module。右键单击项目更新首选项项目Facets
  • Then再次运行Maven ->更新项目

长版本

在学习一些eclipse动态web/spring的东西时,我已经遇到过很多次这个问题,没有其他解决方案可靠地解决我的问题,也没有帮助我理解是什么导致了这个问题。我想我已经开始明白了。

因此,当您运行Maven ->更新项目时,m2e (我假设)正在将Dynamic Web Module添加到项目方面。添加是这里的关键词。因此,当我进入并将web.xml从...“version="2.3">更新到...”version="2.5">

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

当我尝试的时候,3.0也是如此。

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

如果您添加了服务器(如tomcat)方面,则不需要在pom.xml中包含javax.servlet。

票数 102
EN

Stack Overflow用户

发布于 2015-07-13 10:34:45

请参阅Cannot change version of project facet Dynamic Web Module to 3.0?

关闭项目,直接更新项目.settings文件夹下的'org.eclipse.wst.common.project.facet.core.xml‘文件。

票数 13
EN

Stack Overflow用户

发布于 2014-08-29 03:38:36

我的猜测是,最初的作者在初始导入之后手动更改了Eclipse项目的项目方面,并且在那之后再也没有运行过Maven | Update

无论如何,对于Maven项目,最好不要将任何Eclipse元数据(即.classpath, .project, .settings/)提交给SCM,而是让m2e在导入时生成它们。

因此,我建议复制您的项目结构,从副本中删除所有Eclipse元数据,然后通过m2e导入。

如果在导入时仍然有任何错误,那么至少你可以得到一个提示,在哪里原始作者调整了默认值,这样你就知道从哪里开始清理了。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25551213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档