В чем разница между Hudson и CruiseControl для проектов Java?

Я думаю, что название подводит итог. Я просто хочу знать, почему один или другой лучше для непрерывных интеграционных сборок Java-проектов из Svn.

8 ответов

Решение

Как долгое время коммиттер CruiseControl и тот, кто никогда не использовал Hudson, я довольно предвзят, но мое мнение таково:

Hudson намного проще в настройке (в значительной степени благодаря хорошему веб-интерфейсу) и имеет очень активное сообщество разработчиков плагинов.

CruiseControl имеет поддержку множества сторонних материалов и имеет ряд полезных трюков с конфигурацией xml, таких как предконфигурация плагина и include.projects, который позволяет вам изменять информацию конфигурации с проектом.

Если у вас будет только несколько сборок, я думаю, что Хадсон - явный победитель. Если у вас будет много - и вы не возражаете против xml - тогда я думаю, что уловки CruiseControl по настройке xml станут настоящей силой.

Я согласен с этим ответом, но хотел добавить несколько моментов.

Короче говоря, Хадсон (обновление: Дженкинс), вероятно, лучший выбор сейчас. Прежде всего потому, что создание и настройка заданий ("проектов" в словаре CC) намного быстрее с помощью веб-интерфейса Hudson, по сравнению с редактированием XML-файла конфигурации CruiseControl (который мы использовали для контроля версий, чтобы лучше отслеживать его), Последнее не особенно сложно - оно просто медленнее и утомительнее.

CruiseControl был великолепен, но, как отмечается в метко названном посте Дэна Дайера, почему вы до сих пор не используете Hudson? Он страдает от того, чтобы быть первым. (Гм, как Британия, если хотите, позже, в индустриальную революцию, когда другие начали обгонять ее с помощью новых технологий.)

Мы активно использовали CruiseControl и постепенно переключились на Hudson, наконец, используя его исключительно. И даже в большей степени: в процессе мы начали использовать CI-сервер для многих других вещей, чем раньше, потому что настройка и управление заданиями Hudson очень удобны. (Сейчас у нас более 40 заданий в Хадсоне: обычные задания по сборке и тестированию для стабильных и разрабатываемых веток; задания, связанные с выпуском (сборщики инсталляторов и т. Д.); Задания, которые запускают некоторые (экспериментальные) метрики для базы кода; те, которые выполняются (медленно) Пользовательский интерфейс или интеграционные тесты для конкретной версии базы данных и т. Д.)

Исходя из этого опыта, я бы сказал, что даже если у вас много сборок, в том числе сложных, Hudson - это довольно безопасный выбор, потому что, как и CC, вы можете использовать его для чего угодно, в основном. Просто настройте свою работу на запуск любых целей Ant или Maven, сценариев оболочки Unix или сценариев Windows .bat в нужном вам порядке.

Что касается сторонних материалов ( упомянутых здесь Джеффри Фредриком) - это хороший момент, но у меня сложилось впечатление, что Хадсон быстро догоняет, и что для него уже есть очень большое количество плагинов.

Для меня две вещи, которые я могу назвать, которые я скучаю по CruiseControl:

  1. Его предупреждающие письма о сломанных сборках были более информативными, чем письма Хадсона. В большинстве случаев основная причина была очевидна из красиво отформатированной HTML-почты CC, в то время как с Hudson мне обычно нужно перейти по ссылке на веб-интерфейс Hudson и немного щелкнуть вокруг, чтобы узнать подробности.
  2. Панель инструментов CruiseControl лучше всего подходит для использования в качестве " информационного радиатора " (отображается на общественном мониторе или проецируется на стену, чтобы вы всегда могли быстро увидеть состояние всех проектов). С главной страницей Хадсона нам потребовалось несколько трюков с Greasemonkey, чтобы получить рабочие строки, все красиво зеленые / красные.

Небольшой отказ от ответственности: я не следил за проектом CC в течение последнего года или около того. (Но если посмотреть с первого взгляда, он не изменился каким-либо драматическим образом.)

Примечание (2011-02-03): Hudson был переименован / разветвлен как Jenkins (создатель Hudson Kohsuke Kawaguchi и другие). Похоже, что Oracle, который контролирует имя Hudson, тоже будет держать " Hudson ", но моя личная рекомендация - идти с Дженкинсом, независимо от того, что говорит Oracle.

Мой последний проект, мы начали на CruiseControl. Который качался. Затем мы переехали в Гудзон, который качался еще больше. Что мне понравилось в Хадсоне:

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

  • Легко используйте существующий проект в качестве отправной точки нового - так что, если у вас есть привычка создавать ветки разработки, то убедиться, что они находятся в постоянной интеграции, совсем несложно.

Одно из отличий состоит в том, что Гудзон является продуктом единого гениального интеллекта - Кохсуке Кавагути. Из-за этого он последовательный, последовательный и надежный. Недостатком может быть некоторое ограничение скорости прогресса. Тем не менее, Kohsuke невероятно плодовит, поэтому я не буду слишком беспокоиться об этом. И это расширяемо, так что если есть что-то, на что у Kohsuke нет времени (или он не хочет), вы, вероятно, можете сделать это самостоятельно.

Я посмотрел и на Круиз-контроль, и на Хадсон, но выбрал Хадсон, так как его было намного проще установить и настроить. Хадсон, кажется, очень широко используется в наши дни с регулярными выпусками и множеством расширений с помощью плагинов. Я очень рекомендую это.

На мой взгляд, Hudson - более удобная альтернатива. Его можно полностью настроить и поддерживать через веб-интерфейс (кроме начальной установки веб-приложения, конечно).

Единственный способ, которым это можно сказать о CruiseControl, - это если вы посчитаете встроенный редактор XML-файлов.

Тем не менее, пользуясь обоими, я бы предпочел кого-либо, а не автоматическую сборку.

Я попробовал Круиз-контроль... Это хорошо... Но документы фрагментированы. Приборная панель сбивает с толку. Создание виджетов также сбивает с толку. Никогда не пробовал Хадсон. Постараюсь на выходных.

Недавно я настроил Jenkins для создания проектов Borland BDS 2006 с использованием Subversion, и я очень доволен этим. Я еще никогда не пользовался CruiseControl, поэтому не могу сравнить. Читайте мой блог для получения дополнительной информации.

Непрерывная интеграция проекта Delphi с Jenkins

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