Jaka jest różnica między Hudson i CruiseControl dla projektów Java?

Myślę, że tytuł to podsumowuje. Chcę tylko wiedzieć, dlaczego jeden lub drugi jest lepszy dla ciągłej integracji projektów Java Z Svn.

Author: cjapes, 2009-03-03

8 answers

Jako od dawna CruiseControl committer i ktoś, kto nigdy nie korzystał z Hudsona jestem dość stronniczy, ale moim zdaniem jest to:

Hudson jest o wiele łatwiejszy do uruchomienia (w dużej części z ładnego interfejsu internetowego) i ma bardzo aktywną społeczność programistów wtyczek.

CruiseControl ma wsparcie z wielu rzeczy 3rd party i ma tę zaletę, że robi kilka fajnych sztuczek z konfiguracją XML, takich jak konfiguracja wstępna wtyczki i include.projekty, które pozwalają Wersja informacji konfiguracyjnych z projektu.

Jeśli masz tylko kilka buildów, myślę, że Hudson jest zdecydowanym zwycięzcą. Jeśli masz zamiar mieć dużo-i nie przeszkadza xml-to myślę, że triki konfiguracyjne XML CruiseControl stają się prawdziwą siłą.

 36
Author: Jeffrey Fredrick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-03 07:41:21

Zgadzam się z Ta odpowiedź, ale chciałem dodać kilka punktów.

W skrócie, Hudson (update: Jenkins) to chyba lepszy wybór. Przede wszystkim dlatego, że tworzenie i konfigurowanie zadań ("projektów" w słowniku CC) jest po prostu o wiele szybsze poprzez Web UI Hudsona, w porównaniu do edycji pliku konfiguracyjnego XML CruiseControl (którego używaliśmy do kontroli wersji, aby lepiej śledzić). Ten ostatni nie jest szczególnie trudne - po prostu jest wolniejsze i bardziej żmudne.

CruiseControl był świetny, ale jak zauważono w trafnie nazwanym wpisie na blogu dana Dyera, dlaczego nadal nie korzystasz z Hudsona?, cierpi z powodu bycia pierwszym. (Um, jak w Wielkiej Brytanii, jeśli wolisz, później w rewolucji przemysłowej, kiedy inni zaczęli wyprzedzać ją z nowszymi technologiami.)

Używaliśmy CruiseControl mocno i stopniowo przestawialiśmy się na Hudson, w końcu używając go wyłącznie. I nawet więcej mocno: w tym procesie zaczęliśmy używać serwera CI do wielu innych rzeczy niż wcześniej, ponieważ konfigurowanie i zarządzanie zadaniami Hudson jest tak przydatne. (Mamy teraz około 40+ zadań w Hudson: zwykłe zadania build & test dla gałęzi stabilnych i deweloperskich; zadania związane z wydawaniem (instalatory budynków itp.); zadania, które uruchamiają niektóre (eksperymentalne) metryki na podstawie kodu; te, które uruchamiają (wolno) interfejs użytkownika lub testy integracyjne z określoną wersją bazy danych; i tak dalej.)

Z tego doświadczenie twierdziłbym, że nawet jeśli masz wiele buildów, w tym skomplikowanych, Hudson jest dość bezpiecznym wyborem, ponieważ, podobnie jak CC, możesz go użyć do zrobienia wszystkiego, W zasadzie. Po prostu skonfiguruj swoje zadanie tak, aby uruchamiało dowolne cele Ant lub Maven, skrypty powłoki Unix lub Windows .Skrypty nietoperzy, w kolejności, w jakiej sobie życzysz.

Co do 3rd party stuff (wspomniany tutaj przez Jeffreya Fredricka) - to słuszna uwaga, ale mam wrażenie, że Hudson szybko nadrabia zaległości i że istnieje już bardzo duża liczba wtyczek do niego.

Dla mnie dwie rzeczy, których brakuje mi w CruiseControl to:

    [37]}jego ostrzegawcze e-maile o zepsutych konstrukcjach były bardziej pouczające niż wiadomości Hudsona. W większości przypadków główna przyczyna była widoczna z ładnie sformatowanej poczty HTML CC, podczas gdy w przypadku Hudson Zwykle muszę kliknąć link do Hudson web UI i trochę kliknąć, aby uzyskać szczegóły.
  1. The CruiseControl dashboard jest lepiej dopasowany, po wyjęciu z pudełka, jako " information radiator " (wyświetlany na monitorze publicznym lub wyświetlany na ścianie, dzięki czemu zawsze można szybko zobaczyć status wszystkich projektów). Z pierwszej strony Hudsona, potrzebowaliśmy kilka sztuczek Greasemonkey, aby uzyskać rzędy pracy ładnie zielone / czerwone.

Minor disclaimer: nie śledziłem dokładnie projektu CC przez ostatni rok. (Ale z szybkiego spojrzenia , nie zmieniło się to w żadnym dramatyczny sposób.)

W 2011 roku Hudson został przemianowany na Jenkins (twórca Hudson Kohsuke Kawaguchi i inni). Wygląda na to, że Oracle-która kontroluje nazwę Hudson-również będzie trzymać "Hudson", ale moja osobista rekomendacja to iść z Jenkins, bez względu na to, co mówi Oracle.

 117
Author: Jonik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:53:23

Mój ostatni projekt, zaczęliśmy od CruiseControl. Co wstrząsnęło. Potem przenieśliśmy się do Hudson, co wstrząsnęło jeszcze bardziej. Rzeczy, które lubiłem w Hudsonie:

  • Projekty upstream i downstream. Tak więc commit do kodu dostępu do danych ostatecznie uruchomi również kompilację warstwy prezentacji.

  • Łatwo wykorzystaj istniejący projekt jako punkt wyjścia nowego-więc jeśli masz w zwyczaju tworzyć gałęzie rozwoju, upewnij się, że są one pod ciągła integracja to pestka.

 30
Author: toolkit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 22:55:15

Jedna różnica polega na tym, że Hudson jest wytworem jednego genialnego intelektu-Kohsuke Kawaguchi. Dzięki temu jest spójny, spójny i solidny. Minusem może być pewne ograniczenie tempa postępu. Jednak Kohsuke jest niezwykle płodny, więc nie martwiłbym się o to zbytnio. I jest rozszerzalny, więc jeśli jest coś, na co Kohsuke nie ma czasu( lub nie chce), prawdopodobnie możesz to zrobić sam.

 15
Author: erickson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 22:46:11

Spojrzałem na Tempomat i Hudson, ale wybierz Hudson, ponieważ było znacznie łatwiejsze w konfiguracji i konfiguracji. Hudson wydaje się obecnie bardzo szeroko stosowany z regularnymi wydaniami i wieloma rozszerzeniami za pomocą wtyczek. Gorąco polecam.

 4
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 23:08:40

Hudson jest bardziej przyjazną dla użytkownika alternatywą moim zdaniem. Można go skonfigurować i utrzymywać całkowicie za pośrednictwem interfejsu internetowego (oczywiście poza początkową instalacją aplikacji webapp).

O CruiseControl można to powiedzieć tylko wtedy, gdy liczy się wbudowany edytor plików XML.

Mimo to, po użyciu obu, i tak wolę każdy z nich niż bez zautomatyzowanej budowy.

 3
Author: Joachim Sauer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 23:07:01

Próbowałem tempomatu...To dobrze...Ale dokumenty są rozdrobnione. Deska rozdzielcza jest myląca. Tworzenie widżetów jest również mylące. Nigdy nie próbowałem Hudsona. Spróbujemy w weekend.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-17 17:18:38

Ostatnio ustawiłem Jenkinsa do budowy projektów Borland BDS 2006 wykorzystujących Subversion i jestem z tego bardzo zadowolony. Nigdy nie używałem CruiseControl jeszcze, więc nie mogę porównać. Przeczytaj mój wpis na blogu, aby uzyskać więcej informacji.

Ciągła integracja projektu Delphi z Jenkins

 0
Author: Richard Zwinkels,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-18 22:20:07