Как должны быть построены проекты сборки Айви в Дженкинсе? - PullRequest
2 голосов
/ 07 декабря 2011

Я использую следующие версии:

  • Jenkins v1.440
  • Jenkins Ivy Plugin v1.20

Ветка в SVN Iв настоящее время пытаюсь собрать выглядит следующим образом:

  • ответвление
    • product
      • module1
        • module1.build (файл сборки ant) ​​
        • ivy.xml (файл дескриптора плюща module1)
      • module2
        • module2.build (файл сборки ant) ​​
        • ivy.xml (файл дескриптора module2ivy)
      • module3
        • module3.build (файл сборки ant) ​​
        • ivy.xml (файл дескриптора module3ivy)

В настоящее время я настроил отдельные проекты Ivy в Jenkins, чтобы проверить каждый модуль в SVN, а затем напрямую запустил файл сборки ant.Это работает нормально (хотя я не вижу зависимости модуля).

Из документа плагина похоже, что я должен настроить один проект Ivy в Jenkins и получать из "branch \ product \" в SVN вместо "branch \ product \ module1", "branch \"продукт \ module2" ?

Если это так, как мне указать этот один проект Ivy для каждого файла сборки для каждого компонента?Я должен использовать один файл сборки для всех компонентов?

Как это будет работать с несколькими местами SVN?Сможет ли Айви найти зависимости модулей в других местах SVN?Что делать, если у меня есть несколько веток одного и того же компонента?Ivy просто ищет двоичные зависимости во ВСЕХ файлах дескриптора Ivy по определенному пути?

Пожалуйста, дайте мне знать, если вам нужна другая информация, чтобы помочь.

1 Ответ

3 голосов
/ 08 декабря 2011

То, как вы сейчас настроили его, является правильным способом сделать это (хотя вы должны видеть рабочие зависимости, если ваши модули действительно зависят друг от друга). Настройка его в качестве одного многомодульного проекта Ivy Project является еще одним допустимым вариантом, преимущество в том, что вам нужно управлять только одной конфигурацией заданий на набор связанных модулей.

Есть два способа сделать многокомпонентную сборку Ivy.

  1. Создайте файл сборки уровня ветви, который интеллектуально делегирует всем модулям Ivy.
  2. Стандартизируйте имена файлов сборки Ant (например, для build.xml) в каждом модуле и получите плагин Jenkins Ivy для запуска каждой сборки модуля как отдельного задания.

Пример того, как сделать # 1, см .:

Для выполнения # 2 вы можете развернуть раздел «Дополнительно» в разделе «Конфигурация модуля Ivy» конфигурации вашего проекта Ivy Project и установить флажок «Сборка модулей как отдельных заданий». Ваши имена файлов сборки Ant должны быть одинаковыми в каждом модуле, и в идеале цели для вызова и расположение файлов ivy.xml также должны быть идентичными (хотя последние два могут быть переопределены для каждого модуля, если вам нужно). С этого момента все пути в конфигурации задания должны быть связаны с каждым каталогом модуля (например, артефакты к архиву будут просто "target / **" или что-то еще, что будет применяться к каждому модулю после его сборки).

Для обработки нескольких веток одного и того же набора модулей Ivy вам необходимо иметь отдельный проект Ivy для каждой ветви и указывать уникальные значения для поля «Филиал Ivy» в конфигурации проекта Ivy.

...