我正在使用maven在Eclipse中创建一个动态web应用程序。我添加了一些文件夹,如src/test/java和src/test/resources。我还更改了Java Build Path中的库,以获得JavaSE-1.7。到这里都没问题。

当我试图改变项目Facet动态Web模块时,出了问题。在同一个地方,我将Java更改为1.7。它仍然告诉我,不能将项目facet动态Web模块的版本更改为3.0。

我已经改变了所有我认为会影响改变的东西。


当前回答

在我的例子中,web.xml是由dtd引用的。在我将此更改为xsd引用后,就像悉尼发布的那样,它工作了。

其他回答

当我试图将一个普通的Java项目转换为Maven项目时,我得到了这个错误。

我所做的是确定我的项目所需的Java编译器版本。对于我的项目,最低Java版本是1.8。

如果将版本降低到1.8以下,我的IDE将开始抱怨它无法识别大量导入的库,因此我将我的最低Java版本确定为1.8

1. Right click your project
2. Go to Properties
3. Left hand-side panel, click "Project Facets"
4. For Java, set the version according to your minimum version

现在,确保Java编译器版本使用与您在Project Facets中设置的相同的Java版本。

1. Right click your project
2. Go to Porperties
3. Left hand-side panel, click "Java Compiler"
4. Make sure Java Compiler version is the same. 
5. If it is not the same, change the version. (Uncheck "Use compliance from execution environment' if needed to make the changes.

更改后,错误应该得到解决。如果错误仍然存在,右键单击项目-> Maven ->更新项目

右键单击项目→属性;在Project Facets中,取消选择Dynamic Web Module(版本应为3.1)和JavaServer Faces(版本应为2.2)。

改变:

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

:

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

然后删除param-name等前面的前缀。

最后,Maven ->更新项目。

对我有用的是:

将Java更改为1.8(或1.7)

在你的POM中-你必须在<build>节中将编译器插件设置为1.8(或1.7)版本:

  <build>
    ...
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.0</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>  
      </plugins>    
  </build>

确保更改Java Build显示为1.8。如果没有,单击编辑并选择它应该是什么。

修改web.xml,以便在版本和链接中引用3.0

确保在Project Facets中将Java设置为1.8

在这个阶段,我仍然不能改变动态Web模块;

而不是改变它:

a)取消勾选动态Web模块

b)应用

C)再检查一遍。新版本3.0应该设置。**

应用并再次检查后:

希望这能有所帮助。

删除

.settings 
.classpatch 
.projejct 
target

并再次导入maven项目。

我遇到了同样的问题——我只是从我的工作空间中删除了项目,然后清理了“eclipse文件/文件夹,例如:.project, .settings,等等),然后再次导入maven项目,它工作了。