Eclipse Oxygen: как указать зависимости модуля

Я пытаюсь ознакомиться с поддержкой Eclipse для модулей Java 9. Я использую Eclipse Oxygen с пакетом поддержки Java 9 с рынка и последней версией JDK 9 u180.

Проблема касается модульных зависимостей и того, как сообщить Eclipse о них.

Насколько я понимаю, в Eclipse модуль JPMS соответствует проекту Eclipse. Я создал три проекта или модули и добавил необходимые файлы информации о модуле:

module com.effjava.app {
  requires com.effjava.support;
}

module com.effjava.support {
  exports com.effjava.support.hlp;
  exports com.effjava.support.test;
  exports com.effjava.support.user;

  requires transitive com.effjava.util;
}

module com.effjava.util {
  exports com.effjava.util.cbk;
  exports com.effjava.util.reg;
}

Это простая нисходящая цепочка зависимостей. Дескрипторы модуля верны; Мне уже удалось настроить те же модули в IntelliJ.

Моя проблема: как мне сказать Eclipse, что верхние модули зависят от нижних, например, что средний модуль com.effjava.support зависит от нижнего модуля com.effjava.util?

Я определил зависимость в файле module-info (через requires transitive) и Eclipse принимает директиву без жалоб. Тем не менее я вижу сообщение об ошибке при компиляции среднего модуля com.effjava.support, Сообщение об ошибке говорит, что публичный тип из пакета com.effjava.util.cbk не виден, несмотря на то, что экспортируется модулем com.effjava.util и требуется module com.effjava.support,

снимок экрана со структурой проекта и сообщением об ошибке компилятора

Чтобы указать зависимость, я экспортировал содержимое нижнего модуля com.effjava.util в файл jar, включая модуль-info.class. Следовательно, это модульный файл JAR.

Затем я импортировал модульный файл JAR в com.effjava.support модуль и добавил импортированный модульный файл JAR к пути сборки. Но безрезультатно.

скриншот пути сборки

Я попробовал это без импорта, просто добавив модульную флягу как внешнюю библиотеку. Это тоже не сработало.

Вопрос в том, как правильно указать зависимости модуля в Eclipse.

0 ответов

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