Pregunta

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

¿Fue útil?

Solución

Como comentarista 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 instalar y ejecutar (en gran parte desde una buena interfaz web) y tiene una comunidad de desarrollo de complementos muy activa.

CruiseControl tiene soporte de muchos material de terceros y tiene el beneficio de haciendo algunos trucos ingeniosos con la configuración xml como la configuración previa del complemento e include.projects, que le permite crear una versión de la información de configuración con el proyecto.

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

Otros consejos

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. En primer lugar, porque la creación y configuración de trabajos (" proyectos " en el vocabulario de CC) 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 utilizamos para mantener el control de versiones solo para seguirlo mejor). 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 de Dan Dyer, ¿Por qué todavía no usas Hudson? , sufre por ser el primero. (Um, como Gran Bretaña, si así lo desea, más adelante en la revolución industrial, cuando otros comenzaron a adelantarla con tecnologías más nuevas).

Utilizamos CruiseControl en gran medida y gradualmente cambiamos a Hudson, finalmente lo usamos exclusivamente. Y aún más en gran medida: en el proceso hemos comenzado a usar el servidor CI para muchas otras cosas que antes, porque configurar y administrar los trabajos de Hudson es muy útil. (Ahora tenemos más de 40 trabajos en Hudson: los trabajos habituales de compilació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) con respecto a la base de código; lento) UI o pruebas de integración contra una versión de base de datos específica; y así sucesivamente.)

Según esta experiencia, argumentaría que incluso si tiene muchas compilaciones, incluidas las complicadas, Hudson es una opción bastante segura porque, como CC, puede usarla para hacer cualquier cosa , básicamente . Simplemente configure su trabajo para ejecutar cualquier objetivo 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 ( mencionado aquí por Jeffrey Fredrick ) - es un buen punto, pero mi impresión es que Hudson se está recuperando 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 sobre CruiseControl son:

  1. Sus correos electrónicos de advertencia sobre compilaciones rotas fueron más informativos que los de Hudson. En la mayoría de los casos, la causa raíz era evidente en el propio correo HTML bien formateado 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 panel de control de CruiseControl se adapta mejor, fuera de la caja, como un " < a href = "http://www.agileadvice.com/archives/2005/05/information_rad.html" rel = "nofollow noreferrer"> radiador de información " (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 portada de Hudson, necesitábamos algunos trucos de Greasemonkey para obtener filas de trabajos muy bien verdes / rojas.

Descargo de responsabilidad menor: no he estado siguiendo de cerca el proyecto de CC durante el último año. (Pero a partir de un vistazo rápido , no ha cambiado de manera dramática.)

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

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

  • Los proyectos ascendentes y descendentes. Por lo tanto, una confirmación de su código de acceso a datos eventualmente también desencadenará una compilación de la capa de presentación.

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

Una diferencia es que Hudson es el producto de un solo intelecto genio & # 8212; Kohsuke Kawaguchi. Por 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, por lo 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.

Miré tanto a Cruise Control como a Hudson, pero elegí Hudson porque era mucho más fácil de configurar y configurar. Hudson parece ser muy utilizado en estos días con lanzamientos regulares y gran cantidad de extensiones a través de complementos. Lo recomendaría altamente.

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 de decir esto sobre CruiseControl es si cuenta el editor de archivos XML incorporado.

Aún así, después de haber usado ambos, todavía preferiría cualquiera que no tuviera una compilación automática.

Probé el control de crucero ... Es bueno ... Pero los documentos están fragmentados. El tablero es confuso. La creación de widgets también es confusa. Nunca lo intenté con hudson. Lo intentaremos el fin de semana.

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

Integración continua de Proyecto Delphi con Jenkins

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top