Запуск проекта по восходящему потоку до начала проекта
У меня есть следующий макет проекта:
- Проект WAR A
- Проекты по разведке и добыче
- Зависимость B
- Зависимость C
- Зависимость D
Я хочу настроить A так, чтобы каждый раз, когда я хочу запускать сборку, он сначала будет строить B, C и D. Если либо сборка для B, C, либо D не выполняется, тогда A build также не работает.
Кажется, что это общий сценарий сборки, но я не уверен, как его выполнить. Существуют следующие варианты, но они, похоже, не имеют правильных отношений:
- Сборка триггеров - сборка после создания других проектов
- Будет построен текущий проект после некоторых восходящих проектов, но мне нужно контролировать сборку из этого проекта, так как я занимаюсь развертыванием WAR. Я просто хочу всегда создавать зависимости в первую очередь.
- Действия после сборки - создайте другие проекты
- Будет строить проекты после этого, но это назад для того, что я хочу делать.
Есть ли конфигурация сборки в Hudson (или через плагин), которая будет работать для меня?
Ответы
Ответ 1
Это появилось в списке рассылки Hudson совсем недавно. Прямой поддержки такого типа конфигурации сборки в Hudson нет.
Смотрите эту тему:
http://jenkins.361315.n4.nabble.com/On-demand-build-dependency-handling-simple-2-job-build-td624395.html
Вы можете использовать плагин Join для создания задания 'build + deploy'. Он будет иметь B, C и D в качестве нисходящих проектов, а затем "A" станет целью соединения.
Таким образом, B C и D должны завершиться успешно. Если это так, тогда будет запущена обычная "развертывание" работы A. Если бы была какая-либо ошибка, A не запускался. Это фактически то же самое, что и вы просите.
Здесь вы можете прочитать о подключаемом плагине:
http://wiki.hudson-ci.org/display/HUDSON/Join+Plugin
Ответ 2
Взгляните на проект Apache Ivy (http://ant.apache.org/ivy/). Он отлично справляется с зависимостями проекта, и у него есть плагин для Hudson. По тому, как вы описываете проблему, я думаю, что это решение будет работать для вас.
Ответ 3
Я думаю, что Join Plugin - это то, что вы ищете. поэтому вы настраиваете задание A-Trigger, которое запускает B, C, D и ждет, пока все не закончатся и не активируется A.
Ответ 4
У меня есть аналогичный макет проекта, и я нашел после небольшого исследования следующий answeranswer Как мне запустить другое задание из hudson в качестве этапа предварительной сборки?. < ш > Плагин, который, возможно, будет работать в будущем, это PreBuild Plugin.