java continuous-integration hudson jenkins cruisecontrol

¿Cuál es la diferencia entre Hudson y CruiseControl para proyectos de Java?



continuous-integration jenkins (8)

Creo que el título lo resume. Solo quiero saber por qué uno u otro es mejor para las compilaciones continuas de integración de proyectos Java de Svn.


Como comisionado de CruiseControl desde hace mucho tiempo y alguien que nunca ha usado Hudson, soy bastante parcial, pero mi opinión es:

Hudson es mucho más fácil de poner en funcionamiento (en gran parte, desde una buena interfaz web) y tiene una comunidad de desarrollo de complementos muy activa.

CruiseControl tiene soporte de muchas cosas de terceros y tiene la ventaja de hacer algunos trucos ingeniosos con la configuración xml, como preconfiguración de plugins e include.projects, que le permite versionar la información de configuración con el proyecto.

Si solo vas a tener algunas compilaciones, creo que Hudson es el claro ganador. Si vas a tener lotes, y no te importa el xml, entonces creo que los trucos de configuración xml de CruiseControl se convierten en una verdadera fortaleza.


Estoy de acuerdo con esta respuesta , pero quería agregar algunos puntos.

En resumen, Hudson (actualización: Jenkins ) es probablemente la mejor opción ahora. Primero y más importante porque la creación y configuración de trabajos ("proyectos" en CC vocabulario) es mucho más rápida a través de la interfaz de usuario web de Hudson, en comparación con la edición del archivo de configuración XML de CruiseControl (que usamos para mantener el control de las versiones solo para realizar un seguimiento) . Esto último no es especialmente difícil, simplemente es más lento y más tedioso.

CruiseControl ha sido excelente, pero como se señala en la publicación de blog bien nombrada de Dan Dyer, ¿Por qué todavía no estás usando Hudson? , sufre de ser el primero. (Um, como Gran Bretaña, si se quiere, más tarde en la revolución industrial, cuando otros comenzaron a superarlo con tecnologías más nuevas).

Utilizamos CruiseControl en gran medida y nos hemos cambiado gradualmente a Hudson, finalmente utilizándolo exclusivamente. Y aún más : en el proceso, hemos comenzado a utilizar el servidor de CI para muchas otras cosas más que antes, porque configurar y administrar los trabajos de Hudson es muy útil. (Ahora tenemos más de 40 puestos de trabajo en Hudson: los trabajos habituales de construcción y prueba para sucursales estables y de desarrollo, trabajos relacionados con la liberación (instaladores de edificios, etc.), trabajos que ejecutan algunas métricas (experimentales) contra la base de código; ) UI o pruebas de integración contra una versión de base de datos específica, y así sucesivamente).

A partir de esta experiencia, argumentaría que, incluso si tienes muchas construcciones, incluidas las complicadas, Hudson es una opción bastante segura porque, como CC, puedes usarlo para hacer cualquier cosa , básicamente. Simplemente configure su trabajo para ejecutar los objetivos Ant o Maven, scripts de shell de Unix o scripts de Windows .bat, en el orden que desee.

En cuanto a las cosas de terceros ( mencionadas aquí por Jeffrey Fredrick ): ese es un buen punto, pero mi impresión es que Hudson está alcanzando rápidamente, y que ya hay una gran cantidad de complementos disponibles para ello.

Para mí, las dos cosas que puedo nombrar que extraño de CruiseControl son:

  1. Sus correos electrónicos de advertencia sobre construcciones rotas fueron más informativos que los de Hudson. En la mayoría de los casos, la causa principal era evidente desde el mismo correo HTML bien formado de CC, mientras que con Hudson generalmente necesito seguir el enlace a la interfaz de usuario web de Hudson, y hacer clic un poco para obtener los detalles.
  2. El tablero CruiseControl se adapta mejor, de fábrica, como un " radiador de información " (que se muestra en un monitor público o se proyecta en una pared, para que siempre pueda ver rápidamente el estado de todos los proyectos). Con la página principal de Hudson, necesitábamos algunos trucos de Greasemonkey para obtener filas de trabajos muy bien verdes / rojos.

Descargo de responsabilidad menor: No he estado siguiendo el proyecto de CC de cerca durante el último año más o menos. (Pero desde una mirada rápida , no ha cambiado de ninguna manera dramática.)

Nota (2011-02-03): Hudson ha sido renamed/forked como Jenkins (por el creador de Hudson Kohsuke Kawaguchi y otros). Parece que Oracle, que controla el nombre de Hudson, también mantendrá a " Hudson ", pero mi recomendación personal es ir con Jenkins , sin importar lo que Oracle diga.


Hudson es la alternativa más fácil de usar en mi opinión. Se puede configurar y mantener completamente a través de la interfaz web (aparte de la instalación inicial de la aplicación web, por supuesto).

La única forma en que esto podría decirse sobre CruiseControl es si cuenta el editor de archivos XML incorporado.

Aún así, habiendo usado ambos, aún preferiría que alguien no tenga una compilación automatizada.


Intenté el control de Cruceros ... Es bueno ... Pero los documentos están fragmentados. Dashboard es confuso. La creación de widgets también es confusa. Nunca probé Hudson. Lo intentaré el fin de semana.


Mi último proyecto, comenzamos en CruiseControl. Que se balanceó. Luego nos mudamos a Hudson, que se sacudió aún más. Las cosas que me gustaban de Hudson:

  • Los proyectos upstream y downstream. Por lo tanto, un compromiso con su código de acceso a datos también activará una compilación de la capa de presentación.

  • Utilice fácilmente un proyecto existente como punto de partida de uno nuevo, de modo que si tiene la costumbre de crear ramas de desarrollo, asegurarse de que estén en una integración continua es muy fácil.


Miré tanto a Cruise Control como a Hudson, pero elegí Hudson porque era mucho más fácil de configurar y configurar. Hudson parece muy utilizado en la actualidad con lanzamientos regulares y mucha extensión a través de complementos. Lo recomendaría muchísimo.


Recientemente configuré a Jenkins para construir proyectos Borland BDS 2006 haciendo uso de Subversion y estoy muy contento con él. Nunca usé CruiseControl todavía, así que no puedo comparar. Lee la publicación de mi blog para más información.

Integración continua del proyecto Delphi con Jenkins


Una diferencia es que Hudson es el producto de un solo genio intelecto: Kohsuke Kawaguchi. Debido a eso, es consistente, coherente y sólido como una roca. La desventaja podría ser alguna limitación en la tasa de progreso. Sin embargo, Kohsuke es increíblemente prolífico, así que no estaría demasiado preocupado por eso. Y es extensible, así que si hay algo para lo que Kohsuke no tiene tiempo (o no quiere), probablemente puedas hacerlo tú mismo.