Domanda

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

È stato utile?

Soluzione

Da molto tempo il committer CruiseControl e qualcuno che non ha mai usato Hudson sono piuttosto parziale, ma la mia opinione è:

Hudson è molto più facile da avviare e da utilizzare (in gran parte da una bella interfaccia web) e ha una comunità di sviluppo di 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 preconfigurazione del plugin e include.projects che consente di verificare le informazioni sulla configurazione con il progetto.

Se hai solo qualche build, penso che Hudson sia il chiaro vincitore. Se ne avrai molti - e non ti preoccupare dell'xml - allora penso che i trucchi di configurazione xml di CruiseControl diventino un vero punto di forza.

Altri suggerimenti

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

In breve, Hudson (aggiornamento: Jenkins ) è probabilmente la scelta migliore ora. Innanzitutto perché la creazione e la configurazione di 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 usavamo per mantenere il controllo della versione solo per tenerne traccia meglio). Quest'ultimo non è particolarmente difficile - è semplicemente più lento e noioso.

CruiseControl è stato grandioso, ma come notato nel post sul blog di Dan Dyer, Perché non usi ancora Hudson? , soffre di essere il primo. (Uhm, come la Gran Bretagna, se vuoi, più avanti nella rivoluzione industriale, quando altri hanno iniziato a superarla con le nuove tecnologie.)

Abbiamo usato intensamente CruiseControl e siamo passati gradualmente a Hudson, utilizzandolo infine esclusivamente. E ancora di più pesantemente: nel processo abbiamo iniziato a utilizzare il server CI per molte altre cose rispetto a prima, perché impostare e gestire i lavori di Hudson è molto utile. (Ora abbiamo circa 40+ lavori in Hudson: i soliti lavori di build & amp; test per rami stabili e di sviluppo; lavori relativi al rilascio (installatori di edifici, ecc.); Lavori che eseguono metriche (sperimentali) contro la base di codice; quelli che eseguono ( lento) UI o test di integrazione con una versione specifica del database e così via.)

Da questa esperienza, direi che anche se hai molte build, anche complicate, Hudson è una scelta abbastanza sicura perché, come CC, puoi usarla per fare qualsiasi cosa . Configura il tuo lavoro per eseguire qualsiasi target Ant o Maven, script Unix shell o script Windows .bat, nell'ordine che desideri.

Per quanto riguarda le cose di terze parti ( menzionato qui da Jeffrey Fredrick ) - questo è un buon punto, ma la mia impressione è che Hudson stia rapidamente raggiungendo e che c'è già un numero molto grande di plugin disponibili per questo.

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

  1. Le sue e-mail di avvertimento sulle build rotte erano più informative di quelle di Hudson. Nella maggior parte dei casi la causa principale era evidente dalla stessa posta HTML di CC ben formattata, 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. La dashboard CruiseControl è più adatta, pronta all'uso, come " < a href = "http://www.agileadvice.com/archives/2005/05/information_rad.html" rel = "nofollow noreferrer"> radiatore di informazioni " (mostrato su un monitor pubblico o proiettato su una parete, in modo da poter sempre vedere rapidamente lo stato di tutti i progetti). Con la prima pagina di Hudson, avevamo bisogno di alcuni trucchi di Greasemonkey per ottenere file di lavori tutti perfettamente verdi / rossi.

Disclaimer minore: non ho seguito da vicino il progetto CC da circa un anno. (Ma da un uno sguardo veloce , non è cambiato in modo drammatico.)

Nota (2011-02-03): Hudson è stato rinominato / biforcato come Jenkins (dal creatore di Hudson Kohsuke Kawaguchi e altri). Sembra che Oracle, che controlla il nome Hudson, manterrà " Hudson " anche in giro, ma il mio consiglio personale è di andare con Jenkins , non importa cosa dice Oracle.

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

  • I progetti upstream e downstream. 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, assicurarti che questi siano in continua integrazione è un gioco da ragazzi.

Una differenza è che Hudson è il prodotto di un singolo genio intellettuale & Koh Samui Kawaguchi. Per questo motivo, è coerente, coerente e solido come una roccia. Il rovescio della medaglia potrebbe essere una limitazione del tasso di avanzamento. 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.

Ho esaminato sia Cruise Control sia Hudson, ma ho scelto Hudson in quanto era molto più facile da installare e configurare. Hudson sembra molto usato in questi giorni con versioni regolari e molta estensibilità attraverso i plugin. Lo consiglio vivamente.

Secondo me, Hudson è l'alternativa più user-friendly. Può essere impostato e gestito completamente tramite l'interfaccia Web (a parte l'installazione iniziale della webapp, ovviamente).

L'unico modo in cui si potrebbe dire di CruiseControl è se si conta l'editor di file XML incorporato.

Comunque, avendo usato entrambi, preferirei comunque nessuno piuttosto che non avere una build automatizzata.

Ho provato il controllo automatico della velocità di crociera ... Va bene ... Ma i documenti sono frammentati. La dashboard è confusa. Anche la creazione di widget è confusa. Mai provato Hudson. Ci proverò nel fine settimana.

Di recente ho installato Jenkins per la realizzazione di progetti Borland BDS 2006 usando Subversion e ne sono molto contento. Non ho mai usato CruiseControl, quindi non posso confrontare. Leggi il mio post sul blog per ulteriori informazioni.

Integrazione continua di Progetto Delphi con Jenkins

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top