it-roy-ru.com

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

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

72
Jay R.

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

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

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

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

36
Jeffrey Fredrick

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

Короче говоря, Hudson (update: Jenkins ), вероятно, является лучшим выбором сейчас. Прежде всего, потому что создание и настройка заданий («проектов» в словаре 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): Хадсон был переименован/разветвлен как Дженкинс (создатель Хадсона Кохсуке Кавагути и другие). Похоже, что Oracle, который контролирует имя Хадсона, тоже будет держать « Hudson », но моя личная рекомендация - идти с Jenkins, независимо от того, что говорит Oracle.

117
Jonik

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

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

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

30
toolkit

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

15
erickson

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

4
Mark

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

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

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

3
Joachim Sauer

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

1
Jigar Shah

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

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

0
Richard Zwinkels