Интеграция конвейера разработки между несколькими проектами Java с помощью jenkins и artifactory

#java #maven #jenkins #continuous-integration #artifactory

#java #maven #дженкинс #непрерывная интеграция #artifactory

Вопрос:

У меня есть следующий стек:

  • 3 java-проект
  • maven
  • Дженкинс
  • Artifactory (jfrog)
  • git

Для упрощения давайте назовем каждый проект как B C. У каждого из них есть свой собственный CI. Существует конвейерная линия A B, которые плотно прилегают друг к другу, мы сначала создаем A, если она проходит, мы запускаем B поверх артефактов A. Проблема в том, что я хочу иметь конвейер C, который будет работать с самым последним артефактом A и B, но с одним ограничением, нам нужно убедиться, что есть конвейер, который успешно прошел для A B.

Ответ №1:

Если я правильно понял, вам необходимо достичь следующего:

A -> Сборка -> Успех -> последняя

B -> Build -> зависит от A -> Success -> latest

C -> Сборка -> зависит от последних версий A и B -> Успех

Проект A:

Артефакты A будут развернуты только тогда, когда A будет успешным. существует API artifactory, который будет получать последние артефакты, или вы можете использовать aql или плагин jenkins из artifactory для того же.

Проект B:

CI B будет зависеть от A, поэтому он будет срабатывать, если есть какие-либо последние артефакты A, предполагая, что вам всегда нужны последние версии A. В плагине artifactory от jenkins есть опция, при которой он загрузит последнюю версию A, а затем начнет сборку B, если успех будет успешным, тогда он развернет артефакты B.

Проект C:

Аналогичный плагин или aql или api можно использовать для загрузки последних артефактов из A и B, а затем для сборки C. Если C является успешным, артефакты будут развернуты в artifactory для C.

Кроме того, поскольку вы используете mvn, вы можете создать репозиторий типа mvn для настройки Java pom.xml к этому удаленному репозиторию в artifactory для извлечения зависимостей при сборке