Maven - Как создать несколько независимых проектов Maven из одного проекта
У меня есть 3 проекта maven
- веб-компоненты
- DataComponents
- ServiceComponents
Когда я строю каждый из проектов, я должен зайти в каждую папку и запустить mvn clean install для каждого из проектов.
Я просмотрел многомодовые проекты, и большинство ресурсов, которые я вижу, предлагают мне внести изменения в структуру моих существующих проектов.
Можно ли создать новый проект, который будет строить каждый из независимых проектов, без каких-либо изменений каких-либо изменений в существующем проекте, включая их отдельные файлы pom?
Возможно, я смогу добиться этого, написав простой командный файл, который строит все проекты, но возможно ли это с помощью Maven?
Ответы
Ответ 1
Вы ищете агрегацию Maven без наследования. Как показано на ссылочной странице, вы просто создаете новую POM, чья упаковка является "pom" и которая имеет список "модулей". Модуль является относительным путем к другому проекту Maven:
<project>
...
<packaging>pom</packaging>
...
<modules>
<module>foo</module> <!-- module is in a subdirectory of this project -->
<module>../bar</module> <!-- module is a sibling to this project -->
<module>../../../other-projects/baz</module> <!-- somewhere else entirely -->
</modules>
</project>
Поведение по умолчанию при построении такого типа, известного как "агрегатор", - это сборка всех модулей, как если бы вы выполнили Maven в каждом каталоге модулей с теми же аргументами.
Ответ 2
Если вы добавите проект агрегатора в каталог выше трех проектов, которые назовут их как модули (имя модуля = имя подкаталога), он будет их создавать без каких-либо изменений в собственных POM. Им не нужно ссылаться на нее как на родителя.