Хотя ArchCC предоставил приемлемый обходной путь для вашей проблемы, основная проблема заключается в том, что вы неправильно понимаете концепцию модулей.
Модули - это отношения во время сборки, а не зависимости во время выполнения (хотя они обычно не имеют смысла, если на них также не ссылаются как на зависимости). Мультимодульный проект позволяет выполнить сложную сборку за один шаг, используя общую конфигурацию. Как только сборка произошла, блок <modules>
в развернутом pom не имеет никакого значения, поэтому совершенно бессмысленно указывать модули, если у вас их нет.
Если ваша проблема заключается в том, что вы хотите создать только часть проекта, тогда решение заключается в использовании расширенных команд реактора. Вот выдержка из mvn --help
:
usage: mvn [options] [<goal(s)>] [<phase(s)>]
Options:
-am,--also-make If project list is specified, also
build projects required by the
list
-amd,--also-make-dependents If project list is specified, also
build projects that depend on
projects on the list
-pl,--projects <arg> Build specified reactor projects
instead of all projects
-rf,--resume-from <arg> Resume reactor from specified
Примеры:
mvn -am -pl api,client/impl
сборки модулей api и client / impl (здесь также работают вложенные модули) со всеми их зависимостями (в текущем дереве)
mvn -amd -pl core
ядро модуля сборки и все модули, которые ссылаются на него как на зависимость
mvn -rf my/deep/nested/module
возобновить сборку реактора из указанного модуля (сценарий: у вас огромная сборка, которая не проходит из-за юнит-теста в 25-м модуле. Поэтому вы исправляете тест и продолжаете с того места, где находитесь, экономя время на повторную сборку все предыдущие модули)
РЕДАКТИРОВАТЬ: я просто понимаю, что ваши модули находятся за пределами корневого каталога. по моему мнению, это является нарушением концепции модулей maven, поскольку она нарушает функциональность реактора, указанную выше.