Ahora vamos a ver cómo usar Hudson como servidor de integración contínua, para que construya nuestro proyecto de forma automática si hay algún cambio en el repositorio de Subversion y nos informe por email en caso de que se produzca algún error.
En primer lugar, nos descargamos la última versión de Hudson de la web:
https://hudson.dev.java.net/
Nos descargaremos la último versión de Hudson como un archivo .war. Hudson es tan fácil de instalar en un servidor Tomcat cómo copiar el .war en el directorio webapps. Arrancamos el Tomcat y vamos a http://localhost/hudson:
Antes de trabajar con ningún proyecto, vamos a configurar el entorno de Hudson desde Manage Hudson:
Clicamos sobre Configure System:
En nuestro caso, nos interesa configurar Maven y el JDK para que Hudson sea capaz de encontrar sus rutas:
También querremos configurar la notificación por email parapoder enviar correos que alerten sobre construcciones erróneas del proyecto. En caso de no tener un servidor de correo, se puede usar fácilmente Apache James como servidor de correo. Vimos cómo hacerlo en un post anterior.
Una vez tenemos el servidor de correo instalado, podemos modificar la configuración de Hudson:
Ahora podemos crear un nuevo proyecto Java en Eclipse. Para nuestro ejemplo hemos creado un proyecto Maven de una aplicación web y la hemos incorporado a Subversion.
Posteriormente, volvemos a la pantalla principal de Hudson para crear un nuevo job que maneje nuestro proyecto:
Seleccionaremos la última opción Build a maven2 project. A continuación entraremos a la ventana de configuración del proyecto. Configuramos el repositorio de Subversion del proyecto y la consulta de Hudson a este repositorio en busca de cambios que lancen una nueva construcción. Hacemos que esta consulta a Subversion se realice cada minuto:
Ahora lanzamos una construcción de forma manual para construir el espacio de trabajo desde el apartado Workspace del proyecto:
Desde este momento, una vez construido el proyecto, cualquier cambio en el proyecto que sea entregado a Subversion debería reflejarse en una reconstrucción del proyecto. Si subimos una modificación a Subversion, podemos ver cómo Hudson programa una nueva construcción cuando detecta el cambio:
Si ahora introducimos un cambio con un error de compilación, la construcción detectará este error y enviará un correo alertando de este situación:
Con esto, hemos visto cómo configurar y empezar a usar Hudson cocmo servidor de integración continua.