Не удалось разрешить модуль с помощью --module-source-path - PullRequest
0 голосов
/ 10 декабря 2018

Последующие действия по Как определить квалифицированный экспорт в неизвестные модули? Я опубликовал контрольный пример с двумя модулями: core и plugin.

core пытается выставить пакет на plugin, используя квалифицированные экспорты, но компилятор жалуется, что plugin не существует.Следуя рекомендации Алана Бейтмана, я попытался добавить --module-source-path <path-of-plugin> --module plugin, указывающий от core до plugin, но компилятор жалуется:

module plugin not found in source path

Почему компилятор не может найти модуль plugin?

1 Ответ

0 голосов
/ 11 декабря 2018

Я понял это методом проб и ошибок.

  1. Используйте --module-source-path ${project.basedir}/../*/src/main/java, чтобы компилятор мог видеть исходный код обоих модулей.
  2. Используйте --module coreчтобы убедиться, что компилятор создает только core несмотря на то, что он видит все модули.
  3. Скажите maven-jar-plugin, чтобы упаковывать классы из classes/${module.name} вместо просто classes, потому что module-source-path приводит к тому, что вывод будетс префиксом имени модуля.Я не нашел способа отключить этот префикс.

Фиксированный код можно найти по адресу https://bitbucket.org/cowwoc/qualified-exports-testcase/

Предостережение : этот метод работает только в том случае, еслиИмя каталога модуля (компонент, разрешенный *) совпадает с именем модуля Java.В этом конкретном примере модуль core имел свои источники в каталоге core/src/main/java.Если, с другой стороны, имя каталога было core, но соответствующий Java-модуль был org.bitbucket.core, то компиляция не удалась бы с module org.bitbucket.core not found in module source path.

...