Трубопровод Jenkins - maven установка проектов зависимостей
Я устанавливаю CI/CD со следующими компонентами: -Bitbucket -Jenkins -Docker -Maven
Желаемый поток:
- Передача кода в Bitbucket
- Вебхук Дженкинс об изменениях
- Дженкинс конвейер делает следующее:
- mvn установить 2 проекта, SDK+API
- берет jar API и создает образ
- выталкивает изображение в хранилище
- развертывает сервис или контейнер в докер
Где я сейчас застрял, так это:
У меня есть PROJECT-A, в котором есть несколько проектов зависимостей, которые должны быть установлены maven, прежде чем maven установит PROJECT-A и создаст его образ.
Кто-нибудь мог бы посоветовать, что является лучшей практикой здесь?
Я гуглил, это говорит, что мой единственный выполнимый и обслуживаемый вариант должен использовать Parent POM. Однако я не понял, как мне это сделать.
<modules>
<module>project1</module>
<module>project2</module>
<module>project3</module>
</modules>
1 ответ
Даже если бы ваш проект был структурирован по-другому с родительским ПОМ, откуда взялись эти дополнительные проекты? В общем случае mvn install делает что-то другое, чем вы подразумеваете в этом вопросе -
install: установить пакет в локальный репозиторий, для локального использования в качестве зависимости в других проектах
Лучшей практикой здесь (и отсутствующим элементом) является хранилище пакетов. Например, ваша частная артефакт или нексус. Ты бы mvn install
все пакеты к нему и maven будут автоматически разрешать зависимости от него, основываясь на его POM и соответствующей конфигурации.