Qual è la differenza tra Hudson e CruiseControl per i progetti Java?


Penso che il titolo lo riassuma. Voglio solo sapere perché l'uno o l'altro è migliore per le build di integrazione continua di progetti Java da Svn.

Author: cjapes, 2009-03-03

8 answers

Da molto tempo CruiseControl committer e qualcuno che non ha mai usato Hudson sono piuttosto prevenuto, ma la mia opinione su di esso è:

Hudson è molto più facile da ottenere installato e funzionante (in gran parte da una bella interfaccia web) e ha una comunità di sviluppo plugin molto attiva.

CruiseControl ha il supporto di molte cose di terze parti e ha il vantaggio di fare alcuni trucchi accurati con la configurazione xml come la preconfigurazione del plugin e include.progetti che ti permettono di versione le informazioni di configurazione con il progetto.

Se hai solo poche build, penso che Hudson sia il chiaro vincitore. Se hai intenzione di avere un sacco-e non ti importa dell'xml-allora penso che i trucchi di configurazione xml di CruiseControl diventino un vero punto di forza.

 36
Author: Jeffrey Fredrick, 2009-03-03 07:41:21

Sono d'accordo con questa risposta , ma volevo aggiungere alcuni punti.

In breve, Hudson (aggiornamento: Jenkins) è probabilmente la scelta migliore ora. Innanzitutto perché creare e configurare i lavori ("progetti" nel vocabolario CC) è solo molto più veloce attraverso l'interfaccia utente web di Hudson, rispetto alla modifica del file di configurazione XML di CruiseControl (che abbiamo usato per tenere nel controllo della versione solo per tenerne traccia meglio). Quest'ultimo non è particolarmente difficile-è semplicemente più lento e più noioso.

CruiseControl è stato fantastico, ma come notato nel post sul blog di Dan Dyer, Perche ' non usi ancora Hudson?, soffre di essere il primo. (Um, come la Gran Bretagna, se vuoi, più tardi nella rivoluzione industriale, quando altri hanno iniziato a sorpassarla con nuove tecnologie.)

Abbiamo usato CruiseControl pesantemente e sono gradualmente passati a Hudson, finalmente usando esclusivamente. E anche more pesantemente: nel processo abbiamo iniziato a utilizzare il server CI per molte altre cose rispetto a prima, perché impostare e gestire i lavori Hudson è così utile. (Ora abbiamo circa 40 + lavori in Hudson: i soliti lavori di compilazione e test per rami stabili e di sviluppo; lavori relativi al rilascio (creazione di installatori, ecc.); lavori che eseguono alcune metriche (sperimentali) contro la base di codice; quelli che eseguono (lenti) UI o test di integrazione contro una specifica versione del database; e così via.)

Da questo esperienza Direi che anche se hai molte build, comprese quelle complicate, Hudson è una scelta abbastanza sicura perché, come CC, puoi usarlo per fare qualsiasi cosa, fondamentalmente. Basta configurare il tuo lavoro per eseguire qualsiasi obiettivo Ant o Maven, script di shell Unix o Windows .script bat, nell'ordine desiderato.

Per quanto riguarda la roba 3rd party (menzionata qui da Jeffrey Fredrick) - questo è un buon punto, ma la mia impressione è che Hudson stia rapidamente recuperando, e che c'è già un numero molto elevato di plugin disponibili per questo.

Per me, le due cose che posso nominare che mi mancano su CruiseControl sono:

  1. Le sue e-mail di avviso sulle build interrotte erano più informative di quelle di Hudson. Nella maggior parte dei casi la causa principale era evidente dalla stessa mail HTML ben formattata di CC, mentre con Hudson di solito ho bisogno di seguire il link all'interfaccia utente Web di Hudson e fare clic un po ' per ottenere i dettagli.
  2. Il CruiseControl dashboard è più adatto, fuori dalla scatola, come un " informazioni radiatore " (mostrato su un monitor pubblico, o proiettato su un muro, in modo che si può sempre vedere rapidamente lo stato di tutti i progetti). Con la prima pagina di Hudson, avevamo bisogno di alcuni trucchi di Greasemonkey per ottenere righe di lavoro tutte ben verdi/rosse.

Disclaimer minore: non ho seguito da vicino il progetto CC per l'ultimo anno o giù di lì. (Ma da un quick look, non è cambiato in nessuno modo drammatico.)

Nota (2011-02-03): Hudson è stato rinominato/biforcuto come Jenkins (dal creatore di Hudson Kohsuke Kawaguchi e altri). Sembra che Oracle-che controlla il nome Hudson-manterrà anche "Hudson", ma la mia raccomandazione personale è di andare con Jenkins, indipendentemente da ciò che dice Oracle.

 117
Author: Jonik, 2017-05-23 11:53:23

Il mio ultimo progetto, abbiamo iniziato su CruiseControl. Che ha scosso. Poi ci siamo trasferiti a Hudson, che ha scosso ancora di più. Le cose che mi sono piaciute di Hudson:

  • I progetti a monte e a valle. Quindi un commit al tuo codice di accesso ai dati alla fine attiverà anche una build del livello di presentazione.

  • Usa facilmente un progetto esistente come punto di partenza di uno nuovo, quindi se hai l'abitudine di creare rami di sviluppo, assicurati che questi siano sotto l'integrazione continua è un gioco da ragazzi.

 30
Author: toolkit, 2009-03-02 22:55:15

Una differenza è che Hudson è il prodotto di un singolo intelletto genio-Kohsuke Kawaguchi. Per questo motivo, è coerente, coerente e solido come una roccia. Il rovescio della medaglia potrebbe essere qualche limitazione sul tasso di progresso. Tuttavia, Kohsuke è incredibilmente prolifico, quindi non sarei troppo preoccupato per questo. Ed è estensibile, quindi se c'è qualcosa per cui Kohsuke non ha tempo (o non vuole), probabilmente puoi farlo da solo.

 15
Author: erickson, 2009-03-02 22:46:11

Ho guardato sia Cruise Control che Hudson, ma ho scelto Hudson perché era molto più facile da configurare e configurare. Hudson sembra molto usato in questi giorni con rilasci regolari e un sacco di extensiblity attraverso i plugin. Lo consiglio vivamente.

 4
Author: Mark, 2009-03-02 23:08:40

Hudson è l'alternativa più user-friendly a mio parere. Può essere impostato e mantenuto completamente tramite l'interfaccia web (a parte l'installazione iniziale della webapp, ovviamente).

L'unico modo in cui questo potrebbe essere detto su CruiseControl è se si conta l'editor di file XML integrato.

Tuttavia, avendo usato entrambi, preferirei comunque uno qualsiasi piuttosto che non avere una build automatizzata.

 3
Author: Joachim Sauer, 2009-03-02 23:07:01

Ho provato il Cruise control...È buono...Ma i documenti sono frammentati. La dashboard è confusa. Anche la creazione di widget è confusa. Mai provato hudson. Proverà il fine settimana.

 1
Author: , 2009-06-17 17:18:38

Recentemente ho impostato Jenkins per la costruzione di progetti Borland BDS 2006 che fanno uso di Subversion e ne sono molto felice. Non ho mai usato CruiseControl ancora, quindi non posso confrontare. Leggi il mio post sul blog per ulteriori informazioni.

Integrazione continua del progetto Delphi con Jenkins

 0
Author: Richard Zwinkels, 2016-02-18 22:20:07