Я понял это методом проб и ошибок.
- Используйте
--module-source-path ${project.basedir}/../*/src/main/java
, чтобы компилятор мог видеть исходный код обоих модулей. - Используйте
--module core
чтобы убедиться, что компилятор создает только core
несмотря на то, что он видит все модули. - Скажите
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
.