joe*_*elt 34 java eclipse web-applications maven
我从其他公司继承了一个Java Web应用程序.我正在尝试将其加载到Eclipse中(通过Import Maven项目),并收到错误消息"无法将项目方面的动态Web模块更改为2.5".
我一直在探索一下,我发现的一件事是web.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,例如?)
The*_*boy 101
精简版
试试这个:
长版
在学习一些eclipse动态web/spring东西的时候,我已经多次遇到过这个问题,而其他任何一个解决方案都无法可靠地修复我的问题或帮助我理解导致问题的原因.我想我开始了.
因此,当您运行Maven - > Update Project时,m2e(我假设)将动态Web模块添加到Project Facets.添加是关键词.所以当我进入并从[...] http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd"version ="2.3"> 更新web.xml 到[...] http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version ="2.5">
我收到错误"无法将项目方面动态Web模块的版本更改为2.5."
当我尝试3.0时,3.0也是如此.
似乎m2e能够将其添加到您的项目中,但是错误说它一旦设置就无法更改它.因此,只需在项目构面页面中取消选择它即可.单击确定以保存首选项并再次运行Maven Update.

你不应该需要包括在你的pom.xml的javax.servlet,如果你有一台服务器(如Tomcat)方面加入.

Jac*_*Dev 13
关闭项目,直接更新位于项目的.settings文件夹中的文件'org.eclipse.wst.common.project.facet.core.xml'.
我的猜测是原始作者在初始导入后手动更改了Eclipse项目的Project Facets,并且从未运行Maven | 之后更新.
无论如何,对于Maven项目,最好不要将任何Eclipse元数据(即.classpath, .project, .settings/)提交给SCM并让m2e在导入时生成它们.
所以我建议复制你的项目结构,从副本中删除所有Eclipse元数据,然后通过m2e导入.
如果导入时仍然存在任何错误,那么至少您可能会得到原始作者调整默认值的提示,因此您将知道从哪里开始清理.
| 归档时间: | 
 | 
| 查看次数: | 85394 次 | 
| 最近记录: |