Ошибка при компиляции встроенного приложения Jetty: org.eclipse.jetty.server читает пакет jakarta.servlet как из jetty.servlet.api, так и из jakarta.servlet

Я создаю встроенное приложение Jetty с Maven. причал.версия: 11.0.13 сервлет-api.версия: 5.0.0.

Это многомодульный проект.

Один модуль maven с именем «utils» зависит от jakarta.servlet-api для компиляции (предоставляется объем). Для модуля Java требуется jakarta.servlet.

// утилиты pom.xml


Модуль maven «приложение» добавляет следующие зависимости и другие.

// pom.xml приложения

          <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${jetty.version}</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-http</artifactId>
        <version>${jetty.version}</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${jetty.version}</version>
    </dependency>

Одна из других явных зависимостей зависит от модуля maven «utils».

Java-модуль приложения содержит:

      requires utils;
requires org.eclipse.jetty.http;
requires org.eclipse.jetty.server;
requires org.eclipse.jetty.servlet;

Когда я компилирую приложение, все модули зависимостей компилируются нормально, но я получаю эту ошибку при компиляции последнего модуля (приложения):

myapplication.BlaBla.java:[46,17] не может получить доступ к файлу класса jakarta.servlet.http.HttpServlet для jakarta.servlet.http.HttpServlet не найден

Если я добавлю следующую зависимость:

          <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>${servlet-api.version}</version>
        <scope>provided</scope>
    </dependency>

и добавьте следующую строку в модуль моего приложения:

      requires jakarta.servlet;

Мой редактор предупреждает:

Модуль «приложение» читает пакет «jakarta.servlet» как из «jetty.servlet.api», так и из «jakarta.servlet».

И сборка явно не работает со многими сообщениями об ошибках, такими как:

[ОШИБКА] модуль org.eclipse.jetty.server читает пакет jakarta.servlet как из jetty.servlet.api, так и из jakarta.servlet [ОШИБКА] модуль org.eclipse.jetty.server читает пакет jakarta.servlet.http из обоих jetty.servlet Модуль .api и jakarta.servlet [ОШИБКА] org.eclipse.jetty.server читает пакет jakarta.servlet.descriptor как из jetty.servlet.api, так и из модуля jakarta.servlet [ОШИБКА] org.eclipse.jetty.server читает пакет jakarta. servlet.annotation как из jetty.servlet.api, так и из jakarta.servlet [ ...

Если я посмотрю на jar-файл jetty.servlet.api, то не увижу пакета с именем jakarta.servlet.

Я заметил, что «jetty-jakarta-servlet-api-5.0.2.jar» содержит классы jakarta.servlet, но я не знаю, использовать ли это в процессе сборки.

Помощь?

0 ответов

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