Трубопровод Jenkins - maven установка проектов зависимостей

Я устанавливаю CI/CD со следующими компонентами: -Bitbucket -Jenkins -Docker -Maven

Желаемый поток:

  1. Передача кода в Bitbucket
  2. Вебхук Дженкинс об изменениях
  3. Дженкинс конвейер делает следующее:
    • 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 и соответствующей конфигурации.

Другие вопросы по тегам