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

Cannot change version of project facet Dynamic Web Module to 3.1

为什么maven坚持要在我的eclipse项目中把我的Dynamic Web Module改成3.1?我希望它保持 4.0。有没有办法告诉 Maven 我想要 Servlet 规范 4.0?到目前为止,Maven 文档还没有为我提供这个问题的答案。

以下是我的部分 pom:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <inherited>true</inherited>
            <configuration>
                <source>10</source>
                <target>10</target>
            </configuration>
      </plugin>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.1</version>
          <configuration>
              <failOnMissingWebXml>false</failOnMissingWebXml>
          </configuration>
      </plugin>

Servlet jar:

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

Eclipse 项目设置:

m2e 错误:

我正在使用 Java 10 和 tomcat 9 的 eclipse oxygen。我尝试关闭并重新打开我的项目,进行小的更改,然后 Maven 更新我的项目,删除 maven 配置错误看看他们在更新后是否回来(他们回来了)和其他类似的试错类型的东西。到目前为止,没有任何效果。

相关错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=530958

请尝试使用 m2e-wtp 1.4.0。目前,最新的里程碑版本可从 http://download.eclipse.org/m2e-wtp/milestones/photon/1.4/.

获得

只需使用:

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

而不是:

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

在你的 web.xml header.