Заставить Eclipse хорошо играть с JPMS и Maven - PullRequest
0 голосов
/ 30 октября 2019

Учитывая проект Maven, созданный в Eclipse из архетипа maven-archetype-quickstart (с junit, обновленным до 5.5.2, с поддержкой JPMS), как его можно модульно преобразовать в проект JPMS и по-прежнему вести себяхорошо в Eclipse?

Когда я попробовал это, я сначала создал папку модуля в папке java и переместил в нее структуру пакета. Структура проекта выглядит следующим образом:

jpms (папка проекта) -> src / main / java / org.myorg.mymodule / org / myorg / myproject / jpmspackage

. Все идет нормально. Проект строится с mvn clean install в консоли и выполняется модульный тест. Затем папка модуля (содержащая файл module-info.java + пакеты) была установлена ​​в исходную папку («использовать в качестве исходной папки» в Eclipse).

Выполнение сборки Maven в Eclipse теперь завершается неудачно с

Невозможно вложить jjpms / src / main / java / org.myorg.mymodule внутри jpms / src / main / java. Чтобы включить вложение, исключите «org.myorg.mymodule /» из «jpms / src / main / java»

Как установить исходную папку или путь сборки для успокоения Eclipse?

Дескриптор модуля:

module org.myorg.mymodule {
    requires org.junit.jupiter.api;
}

Обновлена ​​зависимость JUnit (проект изначально был создан с использованием JUnit 3-что-то)

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.5.2</version>
</dependency>

Версии: Eclipse 2019-09, Java 12, Maven 3.6.2

1 Ответ

1 голос
/ 08 ноября 2019

Сохраните структуру проекта, просто добавьте файл module-info.java в пакет по умолчанию :

  1. Щелкните правой кнопкой мыши папку проекта и выберите Конфигурировать> Создать module-info.java

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

См. также Java-модули Maven, пример .

...