<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diario de Programación &#187; integración continua</title>
	<atom:link href="http://blog.chuidiang.com/tag/integracion-continua/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chuidiang.com</link>
	<description>Programación e informática en general</description>
	<lastBuildDate>Wed, 25 Jan 2012 23:17:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sonar: viene &#8230; y se va.</title>
		<link>http://blog.chuidiang.com/2009/09/23/sonar-viene-y-se-va/</link>
		<comments>http://blog.chuidiang.com/2009/09/23/sonar-viene-y-se-va/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 20:57:03 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[sonar]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[integración continua]]></category>
		<category><![CDATA[métricas]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=657</guid>
		<description><![CDATA[&#160; Hace un tiempo instal&#233; y prob&#233; Sonar, una estupenda herramienta que genera un informe muy vistoso y c&#243;mo de usar sobre las m&#233;tricas de nuestro c&#243;digo, Pero al final tuve que abandonarlo. El compilado con maven generando el informe era muy lento y el servidor web de sonar acababa dando timeout por la carga [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Hace un tiempo instal&eacute; y prob&eacute; <a href="http://blog.chuidiang.com/2009/02/05/pegas-con-sonar/">Sonar</a>, una estupenda herramienta que genera un informe muy vistoso y c&oacute;mo de usar sobre las m&eacute;tricas de nuestro c&oacute;digo, Pero al final tuve que abandonarlo. El compilado con maven generando el informe era muy lento y el servidor web de sonar acababa dando timeout por la carga a la que se ve&iacute;a sometido. Al final el compilado con maven fallaba por este timeout y eso me hac&iacute;a totalmente imposible integrarlo con <a href="http://blog.chuidiang.com/2008/09/18/hudson/">hudson</a>, para obtener los informes actualizados todas las noches.</p>
<p>El otro d&iacute;a me dio por revisar c&oacute;mo iba el desarrollo de Sonar, qu&eacute; nuevas versiones hab&iacute;an sacado, qu&eacute; problemas hab&iacute;an resuelto &#8230; y me resulto interesante que hab&iacute;an corregido/a&ntilde;adido una nueva &quot;feature&quot;, la <a href="http://jira.codehaus.org/browse/SONAR-764">SONAR-764</a>, en la que b&aacute;sicamente dicen que cargan el trabajo en el plugin de sonar para maven en vez de en el servidor web de sonar. Esto tiene pinta de que puede solucionar los problemas de timeout con el servidor de sonar. As&iacute; que a ello, descargar, instalar y probar.</p>
<p>Las primeras pruebas manuales funcionan a la perfecci&oacute;n. Eso s&iacute;, los compilados tardan casi el doble ya que deben generar adem&aacute;s todos los reportes de m&eacute;tricas, pero ya no tengo el problema de timeout y el informe acaba correctamente y se publica en el servidor web de sonar.</p>
<p>Siguiente paso, hacer que Hudson genere con sonar ese informe todas las noches y lo publique. Y ah&iacute; empezaron los problemas. Algunos proyectos tardaban m&aacute;s en compilar, pero lo hac&iacute;an todo bien y el informe se publicaba. Pero otros proyectos, no necesariamente los m&aacute;s grandes, acababan dando una excepci&oacute;n en el compilado, indicando que &quot;Sonar no se puede ejecutar&quot; y un NullPointerException en los MOJOS de maven. Tras unas investigaciones r&aacute;pidas, no llegu&eacute; a ninguna conclusi&oacute;n ni ning&uacute;n arreglo. El mismo proyecto compilado manualmente en el sitio donde lo hace hudson funciona, pero si lo hace hudson no funciona.</p>
<p>As&iacute; que mi gozo en un pozo. Desinstalar sonar y esperar a una nueva ocasi&oacute;n.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2009/09/23/sonar-viene-y-se-va/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Nodos esclavos en Hudson</title>
		<link>http://blog.chuidiang.com/2009/09/11/nodos-esclavos-en-hudson/</link>
		<comments>http://blog.chuidiang.com/2009/09/11/nodos-esclavos-en-hudson/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 16:27:12 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[integración continua]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=654</guid>
		<description><![CDATA[&#160; Ayer, jugando con Hudson, descubr&#237; una caracter&#237;stica interesante que pod&#237;a solucionar algunos de los problemas que ten&#237;amos y que adem&#225;s me ha dejado alucinado de la facilidad de instalaci&#243;n. Es la posibilidad de poner a otros ordenadores como esclavos de Hudson, de forma que env&#237;e los compilados de los proyectos a ellos. De esta [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Ayer, jugando con <a href="https://hudson.dev.java.net/">Hudson</a>, descubr&iacute; una caracter&iacute;stica interesante que pod&iacute;a solucionar algunos de los problemas que ten&iacute;amos y que adem&aacute;s me ha dejado alucinado de la facilidad de instalaci&oacute;n. Es la posibilidad de poner a otros ordenadores como esclavos de Hudson, de forma que env&iacute;e los compilados de los proyectos a ellos. De esta forma, una sola instalaci&oacute;n de Hudson puede disponer de varios ordenadores para hacer los compilados y repartirlos entre ellos seg&uacute;n una serie de criterios.</p>
<p>Poner un ordenador esclavo de Hudson en muy sencillo. Desde la misma p&aacute;gina web de nuestra instalaci&oacute;n de Hudson le damos a &quot;a&ntilde;adir nodo esclavo&quot;. Hay varias formas de hacer que Hudson hable con el ordenador esclavo y yo eleg&iacute; &quot;instalar un servicio hudson-esclavo&quot;. Para esta opci&oacute;n, solo hay que dar la IP o nombre del ordenador, un usuario y password con permisos de administrador y luego los detalles &quot;t&eacute;cnicos&quot;, como el path del ordenador esclavo donde queremos que hudson trabaje, d&oacute;nde tiene instalado java o maven, etc. No es necesario que esos paths est&eacute;n compartidos o sena p&uacute;blcos.</p>
<p>Pues bien, una vez dados estos datos, y esto es lo que me ha alucinado, hudson el s&oacute;lito copia unos jar en el directorio remoto que le hemos dicho, instala un servicio y lo arranca. A partir de ah&iacute;, ya tenemos nuestro ordenador esclavo funcionando para nuestro Hudson.</p>
<p>&iquest;C&oacute;mo repartimos nuestros proyectos?. Pues hay varias formas:</p>
<ol>
<li>Dejar que Hudson reparta como quiera.</li>
<li>Asignar un proyecto (desde su configuraci&oacute;n) a un esclavo concreto.</li>
<li>Poner etiquetas a los distintos ordenadores esclavos y luego decir en el proyecto que puede ejecutarse en cualquier ordenador que tenga determinada etiqueta.</li>
</ol>
<p>Esta &uacute;ltima caracter&iacute;stica est&aacute; pensada para que las etiquetas sean estilo windowxp, linux, java5, java6, etc en funci&oacute;n del sistema operativo o versi&oacute;n de java que tenga instalado. De esta podemos decir que un proyecto debe compilarse en cualquier ordenador esclavo que tenga la etiqueta java5 y que, por supuesto, tendr&aacute; instalado java 5.</p>
<p>En nuestra web de hudson, donde habitualmente se ponen las barritas de progreso del compilado, veremos los distintos ordenadores, cada uno con sus barritas correspondiente. Pinchando uno de esos ordenadores, veremos s&oacute;lo los proyectos asignados a ese ordenador.</p>
<p>La posible pega de todo esto es que los compilados paralelos pueden ser problem&aacute;ticos, sobre todo si hay proyectos que dependen unos de otros y se compilan a la vez. La versi&oacute;n m&aacute;s moderna de Hudson, la 1.323, permite poner un &quot;check&quot; en la configuraci&oacute;n del proyecto, indic&aacute;ndole que se quede en la cola de espera si hay alg&uacute;n proyecto del que depende que est&eacute; compilando en ese momento. Ese check tiene un peque&ntilde;o bug, y es que no se puede salvar, as&iacute; que hay que marcarlo tocando directamente en el config.xml del proyecto dentro de los directorios de Hudson.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2009/09/11/nodos-esclavos-en-hudson/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jueguecitos con Hudson</title>
		<link>http://blog.chuidiang.com/2009/09/08/jueguecitos-con-hudson/</link>
		<comments>http://blog.chuidiang.com/2009/09/08/jueguecitos-con-hudson/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 18:07:07 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[Hudson]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[integración continua]]></category>
		<category><![CDATA[juegos]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=648</guid>
		<description><![CDATA[&#160; Hace tiempo que usamos Hudson como herramienta de integraci&#243;n continua. B&#225;sicamente saca autom&#225;ticamente todas las noches los fuentes de los proyectos que se han tocado durante el d&#237;a, los compila y si hay errores de compilado, manda un correo-colleja a los que han tocado el c&#243;digo. Hudson proporciona una interface web, de forma que [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Hace tiempo que usamos <a href="https://hudson.dev.java.net/">Hudson</a> como herramienta de integraci&oacute;n continua. B&aacute;sicamente saca autom&aacute;ticamente todas las noches los fuentes de los proyectos que se han tocado durante el d&iacute;a, los compila y si hay errores de compilado, manda un correo-colleja a los que han tocado el c&oacute;digo. Hudson proporciona una interface web, de forma que con nuestro navegador podamos ver en todo momento si los proyectos compilan, qu&eacute; fallos de compilado tienen, qui&eacute;n ha tocado, qu&eacute; ha tocado, etc.</p>
<p>Sin embargo, hoy he descubierto que tiene un &quot;jueguecito&quot;. A Hudson se le pueden instalar f&aacute;cilmente plugins, por ejemplo, todos los de m&eacute;tricas (checkstyle, pmd, findbugs, etc), de forma que adem&aacute;s de compilar, pasa todas estas m&eacute;tricas y genera unos informes visibles desde el navegador. Pues el jueguecito consiste en un plugin adicional que se puede instalar, el <a href="http://wiki.hudson-ci.org/display/HUDSON/The+Continuous+Integration+Game+plugin">Continuous Integration Game</a>.</p>
<p>Una vez instalado este plugin, debemos activarlo en la configuraci&oacute;n de cada proyecto (junto con los informes de m&eacute;tricas). De esta forma, cada vez que compila, Hudson asigna o quita puntos a los desarrolladores que ese d&iacute;a han tocado el c&oacute;digo. Les da un punto si compila correctamente, les quita diez si falla, les da puntos si hay test nuevos que pasan, les quita puntos si fallan los test, les da puntos si han corregido m&eacute;tricas, les quita si hay m&aacute;s violaciones de las mismas. Al final, tenemos una tabla de jugadores (desarrolladores) ordenada del de m&aacute;s puntos (el mega-top-developer que lo puede todo) hasta el de menos puntos (el torpe-hasta-decir-basta).</p>
<p>Quiz&aacute;s es injusto para un solo compilado, ya que si falla, se quita diez puntos a todos los que han intervenido, independientemente de que sean o no los causantes. Pero est&aacute; claro que por estad&iacute;stica, a la larga, el torpe interviene en casi todos los compilados fallidos y el listado de puntos se acabar&aacute; ordenando de una forma l&oacute;gica.</p>
<p>Es una chorrada, pero supongo que si hacemos una bromillas con el segundo, el &uacute;ltimo y animamos al primero a conservar su puesto, puede haber verdaderos piques por hacer el c&oacute;digo bien. Pues ah&iacute; ha quedado todo instalado, a ver ma&ntilde;ana qui&eacute;n es el primero de la lista. Incluso podemos poner que todos los lunes los de la mitad de abajo inviten a caf&eacute; a los de la mitad de arriba o que echen un euro en un bote.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2009/09/08/jueguecitos-con-hudson/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hudson</title>
		<link>http://blog.chuidiang.com/2008/09/18/hudson/</link>
		<comments>http://blog.chuidiang.com/2008/09/18/hudson/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 17:03:10 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[bitten]]></category>
		<category><![CDATA[continuum]]></category>
		<category><![CDATA[cruisecontrol]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[integración continua]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=409</guid>
		<description><![CDATA[&#160;Este comentario de Blaxter me ha llevado a probar las herramientas que &#233;l indica para integraci&#243;n continua, en lugar de CruiseControl o Continuum. La primera herramienta, bitten, la descart&#233; sin probarla, porque parece que es como un plugin para Trac, que de momento no puedo usar, aunque quiero, porque no soporta CVS. Tampoco me fij&#233; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;Este <a href="http://blog.chuidiang.com/2008/09/16/continuum-vs-cruisecontrol/#comments">comentario de Blaxter</a> me ha llevado a probar las herramientas que &eacute;l indica para integraci&oacute;n continua, en lugar de <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> o <a href="http://continuum.apache.org/">Continuum</a>.</p>
<p>La primera herramienta, <a href="http://bitten.edgewall.org/">bitten</a>, la descart&eacute; sin probarla, porque parece que es como un plugin para <a href="http://trac.edgewall.org/">Trac</a>, que de momento no puedo usar, aunque quiero, porque no soporta CVS. Tampoco me fij&eacute; demasiado si se puede arrancar suelta, pero me hace la impresi&oacute;n de que s&iacute;.</p>
<p>As&iacute; que me fu&iacute; con la segunda, <a href="https://hudson.dev.java.net/">Hudson</a>.</p>
<p>Una maravilla de herramienta.</p>
<p>La instalaci&oacute;n muy sencilla. Se baja uno un .war y ejecuta <em>java -jar hudson.war</em>. Abres el navegador y ya tienes lista la p&aacute;gina de hudson, preparada para configurar y a&ntilde;adir proyectos.</p>
<p>La configuraci&oacute;n sencilla y toda a v&iacute;a web. Todav&iacute;a no he tenido que tocar ning&uacute;n fichero externo, salvo la variable HUDSON_HOME antes de arrancar, para decirle a Hudson d&oacute;nde debe situar todo.</p>
<p>Los proyectos se a&ntilde;aden f&aacute;cil, copiando unos de otros, indicando el repositorio CVS, subversion o lo que sea, si es de maven, de ant, etc.</p>
<p>Sin embargo, lo que m&aacute;s me ha gustado de todo, es que es &quot;inteligente&quot;. Trabajando con varios proyectos maven es capaz de ver las dependencias entre proyectos y autom&aacute;ticamente, si un proyecto necesita compilarse, despu&eacute;s compila todos los que dependen de &eacute;l. Y al rev&eacute;s, para mirar si un proyecto necesita compilarse, mira tambi&eacute;n autom&aacute;ticamente si necesitan compilarse los proyectos de los que depende.</p>
<p>Dicho de otra forma, si tengo un proyecto LIBRERIA y otro proyecto PROYECTO que usa librer&iacute;a, si meto algo en CVS de LIBERIA, me compial LIBRERIA y autom&aacute;ticamente despu&eacute;s compila PROYECTO. Y al rev&eacute;s, cuando mira a ver si hay alg&uacute;n cambio de CVS en PROYECTO para ver si necesita compilarlo, mira autom&aacute;ticamente tambi&eacute;n los posibles cambios en CVS de LIBRERIA.</p>
<p>Esto tiene la ventaja de que garantiza que todos los proyectos est&aacute;n siempre actualizados y compilados con las &uacute;ltimas librer&iacute;as disponibles de las que dependen y que si se toca una librer&iacute;a, se detecta r&aacute;pido si eso estropea el compilado de un proyecto.</p>
<p>Sin embargo tiene una &quot;pega&quot; o efecto curioso. Basta tocar un fuente en una librer&iacute;a para que Hudson se ponga a compilar como loco unos proyectos y otros, y los compilados de unos provoquen a su vez los compilados de otros. Por un simpel fuente tocado, puede pasarse un par de horas compilando todas las dependencias y las dependencias de las dependencias (cosa, por otro lado, l&oacute;gica).</p>
<p>En cuanto al resto, tambi&eacute;n estupendo. Todo lo que se te ocurre configurar, esta configurable via web (el servidor de email, cuantos logs quieres que guarde, comando para construir los proyectos si no es el de defecto, los path de java, ant, maven, sh, etc, etc, etc. Tambi&eacute;n puedes configurar cu&aacute;ntos hilos de compilado paralelos quieres, de forma que pueden compilar hasta n proyectos simult&aacute;neos, eligiendo t&uacute; el valor de n.</p>
<p>Me queda pendiente probar bitten, pero de momento Hudson lleva todas las papeletas de quedarse como herramienta.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2008/09/18/hudson/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Continuum vs CruiseControl</title>
		<link>http://blog.chuidiang.com/2008/09/16/continuum-vs-cruisecontrol/</link>
		<comments>http://blog.chuidiang.com/2008/09/16/continuum-vs-cruisecontrol/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 18:33:41 +0000</pubDate>
		<dc:creator>Chuidiang</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[continuum]]></category>
		<category><![CDATA[cruisecontrol]]></category>
		<category><![CDATA[integración continua]]></category>

		<guid isPermaLink="false">http://blog.chuidiang.com/?p=408</guid>
		<description><![CDATA[&#160;Hace tiempo me decid&#237; a instalar en el trabajo una de estas herramientas de integraci&#243;n continua, de esas que todas las noches compilan los proyectos desde cero y mandan correos a los desarrolladores y jefes sobre el &#233;xito o fracaso de esa compilaci&#243;n. En su momento evalu&#233; estas dos: CruiseControl y Continuum. Primero intent&#233; con [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;Hace tiempo me decid&iacute; a instalar en el trabajo una de estas herramientas de integraci&oacute;n continua, de esas que todas las noches compilan los proyectos desde cero y mandan correos a los desarrolladores y jefes sobre el &eacute;xito o fracaso de esa compilaci&oacute;n.</p>
<p>En su momento evalu&eacute; estas dos: <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> y <a href="http://continuum.apache.org/">Continuum</a>. Primero intent&eacute; con Continuum, porque parec&iacute;a ser la m&aacute;s usada junto con <a href="http://maven.apache.org/">Maven</a>, pero me encontr&eacute; con una pega en ese momento que me requer&iacute;a mucho trabajo para resolverla. Resulta que una vez instalado y todo a trav&eacute;s de una interface web, le indicas a Continuum el fichero pom.xml de tu proyecto y &eacute;l se encarga. La pega gorda, que me hizo desecharlo, es que en proyectos maven que tienen a su vez subproyectos debajo, Continuum obligaba a que el directorio del subproyecto se llamara igual que el artifactId de maven, cosa que en mi caso no era as&iacute;. A mi me gusta poner los nombres de directorios en may&uacute;sculas y con _ entre palabras, mientras que el artifactId coincide con el nombre del jar, y me gusta m&aacute;s en min&uacute;sculas y sin _. Total, que Continuum no me cog&iacute;a mis proyectos maven complejos compuestos de subproyectos y no me apetec&iacute;a ponerme a cambiar nombres de directorios o de jars.</p>
<p>La segunda pega de Continuum es que requiere que en el pom.xml est&eacute; la informaci&oacute;n para el sistema de control de versiones (CVS, Subversion, con usuario, nombre de repositorio y proyecto&#8230;. y password). Estupendo si es uno solo, pero si hay varios desarrolladores, &iquest;de qui&eacute;n ponemos ah&iacute; la informaci&oacute;n?. Por supuesto, habr&iacute;a que crear un usuario &quot;anonimo&quot; con acceso de s&oacute;lo lectura al sistema de control de versiones. Cosa compleja si el servidor es de CVS y adem&aacute;s corporativo. Nada menos que una petici&oacute;n al departamente de inform&aacute;tica y un &quot;agujero&quot; de seguridad dejando un acceso p&uacute;blico a nuestros &quot;super secretos fuentes&quot; (es un decir).</p>
<p>As&iacute; que me puse a probar con CruiseControl. Este fue bastante mejor. No tiene casi ning&uacute;n tipo de configuraci&oacute;n a trav&eacute;s de interface web, por lo que todo se configura a mano. T&uacute; te haces el checkout, le dices a CruiseControl en un fichero xml d&oacute;nde est&aacute;n los fuentes, cada cu&aacute;nto tiene que compilarlos, a qui&eacute;n tiene que enviar correos y listo. La interface web es adem&aacute;s mucho m&aacute;s sencilla, un listado de proyectos con un bot&oacute;n de &quot;build&quot; al lado y un enlace para ver los resultados del compilado y poder bajarse los jar.</p>
<p>As&iacute; estuvimos funcionando unos a&ntilde;os, pero CruiseControl fue presentando sus pegas. El fichero xml de configuraci&oacute;n con los proyectos empez&oacute; a crecer y crecer, hasta hacerse una pesadilla cualquier modificaci&oacute;n (hab&iacute;a que tocar en muchos proyectos). Y encima, el bot&oacute;n de &quot;build&quot; le funciona a unos s&iacute; y a otros no, con unos navegadores s&iacute; y con otros no, y sin una regla fija. A unos les funciona con Internet explores, a otros con firefox, a otros con ninguno. Y otra pega m&aacute;s, a veces, si el c&oacute;digo de los test autom&aacute;ticos de JUnit se queda colgado por el motivo que sea, deja colgadas todas las tareas siguientes de compilaci&oacute;n de otros proyectos en CruiseControl. No queda m&aacute;s remedio que &quot;matarlo&quot; y volverlo a arrancar.</p>
<p>El otro d&iacute;a decimos bajar y probar una nueva versi&oacute;n de Continuum. Esta vez s&iacute; funcion&oacute; el importar los pom.xml, puesto que ya admite nombres de directorios y artifactId distintos. La configuraci&oacute;n a trav&eacute;s de web de todo el sistema es sencilla, aunque si no hace lo que t&uacute; quieres, no se puede hacer. Sigue habiendo cosas ocultas en ficheros de configuraci&oacute;n ocultos, como la configuraci&oacute;n del servidor de correo para que Continuum pueda enviar correos. Y sigue habiendo cosas que no s&eacute; si me gustan, como la necesidad del usuario an&oacute;nimo en CVS y que en el pom.xml deben estar todos los nombres de desarrolladores y correos que intervengan en el proyecto (cosa l&oacute;gica por un lado, pero que no deja de ser un rollo ponerlo y tenerlo actualizado). En este sentido, CruiseControl usaba el nombre de usuario del commit de cvs para enviarle el correo, o bien hacer un mapeo de ese nombre con una direcci&oacute;n de correo si no coincide.</p>
<p>Pero bueno, ah&iacute; tenemos un Continuum instalado y funcionando, hasta ahora bien, y despu&eacute;s de un par de meses de prueba quiz&aacute;s (seguro) que nos cargamos el CruiseControl.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chuidiang.com/2008/09/16/continuum-vs-cruisecontrol/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

