Как скомпилировать один модуль в следующем сценарии двух многомодульных проектов Maven A и B.
Оба проекта расположены в одном каталоге, поэтому структура каталога выглядит следующим образом:
root
|-- A
| |-- A1
| |-- A2
| `-- A3
`-- B
|-- B1
`-- B2
Все каталоги, кроме root, имеют свои собственные файлы pom.xml, и каждый подмодуль ссылается на свой родительский модуль (у A1 есть родительский A и т. Д.), А родительский ссылается на свои подмодули (у A есть модули A1-A3),У меня проблема в том, что A1 зависит также от B1 , так как проект B - это набор утилит, которые я хочу использовать в других проектах.
У меня вопрос как мнеправильно ссылаться на B1 , чтобы я мог собрать A1 без предварительной установки B1 .Я имею в виду, что я хочу собрать A1 со всеми его зависимостями, используя одну команду maven.
Мое текущее решение - сделать B1 модулем A (через ссылку на модуль ../B/B1
).Тогда я могу позвонить mvn package
из каталога A, и он работает нормально.Но создание всего проекта А иногда занимает очень много времени.Поэтому я хотел бы построить только А1 + Депс.Как я могу это сделать?Когда я вызываю mvn reactor:make -Dmake.folders=A1
из каталога AI, получаю следующую ошибку сборки:
Reason: Cannot find parent: B:B for project: B:B1:jar:1.0-SNAPSHOT for project B:B1:jar:1.0-SNAPSHOT
Так что кажется, что maven неожиданно больше не может найти родительский модуль B1 при использовании плагина реактора.Кто-нибудь знает решение для этого или альтернативный подход для ссылки на подмодуль из другого проекта, который позволяет собирать A1 способом, описанным выше?
Обратите внимание, я не хочу устанавливать супер модуль в root, которыйвключает в себя модули A и B, потому что это pom-файл, потому что каждый пользователь, который проверяет A и B, может также иметь другие проекты в своем корневом каталоге и, следовательно, должен будет написать свой собственный pom-файл для root.