wake-up-neo.com

Was ist der Unterschied zwischen Hudson und CruiseControl für Java-Projekte?

Ich denke, der Titel fasst es zusammen. Ich möchte nur wissen, warum der eine oder andere für kontinuierliche Integrationserstellungen von Java-Projekten von Svn besser geeignet ist.

72
Jay R.

Als langjähriger CruiseControl-Committer und jemand, der Hudson noch nie benutzt hat, bin ich ziemlich voreingenommen, aber meine Meinung dazu ist:

Hudson ist viel einfacher zu installieren (zum großen Teil von einem Nice-Webinterface aus) und verfügt über eine sehr aktive Plugin-Entwicklungsgemeinschaft.

CruiseControl bietet Unterstützung von vielen Drittanbieter-Sachen und hat den Vorteil, einige praktische Tricks mit der XML-Konfiguration wie Plugin-Vorkonfiguration und include.projects auszuführen, mit der Sie die Konfigurationsinformationen mit dem Projekt versionieren können.

Wenn Sie nur ein paar Builds haben, denke ich, dass Hudson der klare Gewinner ist. Wenn Sie eine Menge haben werden - und die XML-Konfiguration nicht stört -, dann denke ich, dass die Xml-Konfigurationstricks von CruiseControl zu einer echten Stärke werden.

36

Ich stimme dieser Antwort zu, wollte aber ein paar Punkte hinzufügen.

Kurz gesagt, Hudson (Update:Jenkins) ist wahrscheinlich die bessere Wahl. In erster Linie, weil das Erstellen und Konfigurieren von Jobs ("Projekten" im CC-Vokabular) über die Hudson-Web-Benutzeroberfläche nurso viel schneller istals das Bearbeiten der XML-Konfigurationsdatei von CruiseControl (die wir in der Version beibehalten haben) nur kontrollieren, um den Überblick zu behalten). Letzteres ist nicht besonders schwierig - es ist einfach langsamer und langwieriger.

CruiseControl war großartig, aber wie in Dan Dyers treffend benanntem Blog-Post erwähnt,Warum verwenden Sie Hudson immer noch nicht?, es leidet darunter zu sein zuerst. (Ähm, wie Großbritannien, wenn Sie so wollen, später in der industriellen Revolution, als andere begannen, es mit neueren Technologien zu überholen.)

Wir haben CruiseControl intensiv genutzt und sind nach und nach auf Hudson umgestiegen und haben es schließlich ausschließlich verwendet. Undnoch mehrstark: In diesem Prozess haben wir begonnen, den CI-Server für viele andere Dinge als zuvor zu verwenden, da das Einrichten und Verwalten von Hudson-Jobs so praktisch ist. (Wir haben jetzt über 40 Jobs in Hudson: die üblichen Build- und Testjobs für Stable- und Entwicklungszweige; Jobs im Zusammenhang mit dem Release (Installer usw.); Jobs, die einige (experimentelle) Metriken für die Codebasis ausführen; Jobs, die ausgeführt werden (langsam) ) UI- oder Integrationstests für eine bestimmte Datenbankversion usw.)

Aufgrund dieser Erfahrung würde ich argumentieren, dass Hudson eine ziemlich sichere Wahl ist, auch wenn Sie viele Builds haben, einschließlich komplizierter, da Sie es wie CC verwenden können, umim Grunde genommenzu tun. Konfigurieren Sie Ihren Job einfach so, dass Ant- oder Maven-Ziele, Unix-Shell-Skripte oder Windows-BAT-Skripte in der von Ihnen gewünschten Reihenfolge ausgeführt werden.

Was die Sachen von Drittanbietern betrifft ( hier von Jeffrey Fredrick ) - das ist ein guter Punkt, aber ich habe den Eindruck, dass Hudson schnell aufholt und dass es bereits eine sehr große Anzahl gibt von verfügbaren Plugins dafür.

Die beiden Dinge, die ich an CruiseControl vermissen kann, sind für mich:

  1. Die Warnmeldungen über fehlerhafte Builds waren informativer als die von Hudson. In den meisten Fällen war die Hauptursache die gut formatierte HTML-Mail von CC selbst, wohingegen ich bei Hudson normalerweise dem Link zur Hudson-Web-Benutzeroberfläche folgen und ein wenig herumklicken muss, um die Details zu erfahren.
  2. Das CruiseControl-Dashboard eignet sich besser als " Informationsradiator " (wird auf einem öffentlichen Monitor angezeigt oder projiziert) eine Wand, so dass Sie immer schnell den Status aller Projekte sehen können). Auf der Titelseite von Hudson brauchten wir einige Greasemonkey-Tricks, um Jobzeilen schön grün/rot zu machen.

Kleiner Haftungsausschluss: Ich habe das CC-Projekt das letzte Jahr oder so nicht genau verfolgt. (Aber von einem kurzen Blick aus hat sich nichts dramatisch geändert.)

Hinweis (03.02.2011): Hudson wurde umbenannt in/forked als Jenkins (von Hudson-Schöpfer Kohsuke Kawaguchi und andere). Es sieht so aus, als würde Oracle - das den Hudson-Namen kontrolliert - auch " Hudson " beibehalten, aber meine persönliche Empfehlung lautet, mit Jenkins zu gehen, egal was Oracle sagt .

117
Jonik

Mein letztes Projekt haben wir mit CruiseControl gestartet. Welches rockte. Dann zogen wir nach Hudson, was noch mehr rockte. Die Dinge, die mir an Hudson gefallen haben:

  • Die vor- und nachgelagerten Projekte. Ein Commit für Ihren Datenzugriffscode löst also auch einen Build der Präsentationsschicht aus.

  • Verwenden Sie problemlos ein vorhandenes Projekt als Ausgangspunkt für ein neues. Wenn Sie also daran interessiert sind, Entwicklungszweige zu erstellen, ist es ein Kinderspiel, sicherzustellen, dass diese unter ständiger Integration stehen.

30
toolkit

Ein Unterschied ist, dass Hudson das Produkt eines einzigen Genies ist - Kohsuke Kawaguchi. Aus diesem Grund ist es konsistent, kohärent und absolut solide. Der Nachteil könnte die Fortschrittsrate einschränken. Kohsuke ist jedoch unglaublich produktiv, daher wäre ich nicht allzu besorgt. Und es ist erweiterbar. Wenn es also etwas gibt, für das Kohsuke keine Zeit hat (oder möchte), können Sie es wahrscheinlich selbst tun.

15
erickson

Ich habe sowohl Cruise Control als auch Hudson angesehen, habe mich jedoch für Hudson entschieden, da das Einrichten und Konfigurieren viel einfacher war. Hudson scheint heutzutage mit regulären Releases und Erweiterungen durch Plugins sehr verbreitet zu sein. Ich würde es wärmstens empfehlen.

4
Mark

Hudson ist meiner Meinung nach die benutzerfreundlichere Alternative. Es kann vollständig über die Weboberfläche eingerichtet und gewartet werden (abgesehen von der Erstinstallation der Webapp natürlich).

Die einzige Möglichkeit, dies über CruiseControl zu sagen, ist, wenn Sie den integrierten XML-Datei-Editor zählen.

Obwohl ich beide verwendet habe, würde ich immer noch bevorzugen, dass es keinen automatisierten Build gibt.

3
Joachim Sauer

Ich habe es mit dem Tempomat versucht. Es ist gut ... Aber die Dokumente sind fragmentiert. Dashboard ist verwirrend. Die Widget-Erstellung ist ebenfalls verwirrend. Hudson nie probiert. Werde es am Wochenende versuchen.

1
Jigar Shah

Ich habe kürzlich Jenkins für den Bau von Borland BDS 2006-Projekten mit Subversion eingerichtet und bin damit sehr zufrieden. Ich habe CruiseControl noch nie verwendet, daher kann ich es nicht vergleichen. Lesen Sie meinen Blog-Beitrag für weitere Informationen.

Kontinuierliche Integration des Delphi-Projekts mit Jenkins

0