Невозможно изменить версию фасета проекта Dynamic Web Module на 3.1

Почему maven настаивает на том, чтобы в моем проекте eclipse мой Dynamic Web Module был изменен на 3.1? Я хочу, чтобы он оставался 4.0. Есть ли способ сказать maven, что я хочу Servlet spec 4.0? До сих пор документация Maven не дала мне ответа на этот вопрос.

Вот части моего пом:

       <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>

Сервлет баночка:

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

Настройки проекта Eclipse:

настройки проекта

m2e ошибка:

ошибка m2e

Я использую затмение кислорода с Java 10 и tomcat 9. Я попытался закрыть и снова открыть свой проект, внеся небольшие изменения, а затем Maven Обновление моего проекта, удалив ошибки конфигурации maven, чтобы увидеть, возвращаются ли они после обновления (они возвращаются) и другие подобные вещи типа проб и ошибок. Пока ничего не получилось.

1 ответ

Решение

Связанная ошибка: 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 заголовок.

Другие вопросы по тегам