Estás en:

informaciónDESARROLLADO POR:

Consultor tecnológico de desarrollo de proyectos informáticos.

Ingeniero en Informática, especialidad en Ingeniería del Software

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Fecha de publicación del tutorial: 2009-12-09
Tutorial visitado 1.868 veces1.868
Descargar el tutorial en PDF


Regístrate para votar
Share |
Integrando Sonar con Hudson/title> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" /> <link type="text/css" rel="stylesheet" href="http://www.adictosaltrabajo.com/sintax/css/SyntaxHighlighter.css" /> <script language="javascript" src="http://www.adictosaltrabajo.com/sintax/js/shCore.js"> </script> <script language="javascript" src="http://www.adictosaltrabajo.com/sintax/js/shBrushJava.js"> </script> <script language="javascript" src="http://www.adictosaltrabajo.com/sintax/js/shBrushXml.js"> </script> <script language="javascript" src="http://www.adictosaltrabajo.com/sintax/js/shBrushXml.js"> </script> <script language="javascript" src="http://www.adictosaltrabajo.com/sintax/js/shBrushCss.js"> </script> <script type="text/javascript"> window.onload = function() { dp.SyntaxHighlighter.HighlightAll("code"); } </script> </head> <body> <h2>Integrando Sonar con Hudson</h2> <h3>0. Índice de contenidos.</h3> <ul> <li><a href="#01">1. Introducción.</a></li> <li><a href="#02">2. Entorno.</a></li> <li><a href="#03">3. Comenzamos con la integración.</a></li> <li><a href="#04">4. Conclusiones.</a></li> </ul> <h3><a name="01">1. Introducción</a></h3> <p>En este tutorial vamos a ver la forma de integrar dos estupendas herramientas como son Hudson y Sonar. La idea es que al hacer un build de un trabajo en Hudson se actulice automáticamente el proyecto en Sonar. Si esto te ha sonado a chino mandarín te recomiendo que antes te leas estos dos tutoriales:</p> <ul><li>Hudson: http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=hudsonInstalacionTomcat</li> <li>Sonar: http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=utilizandoSonar<br /> </p> </li></ul> <h3><a name="02">2. Entorno</a></h3> <p>El tutorial está escrito usando el siguiente entorno:</p> <ul> <li>Hardware: Portátil Asus G50Vseries (Core Duo P8600 2.4GHz, 4GB RAM, 320 GB HD).</li> <li>Sistema operativo: Ubuntu 9.04 Desktop</li> <li>Mozilla Firefox 2.0.0.20</li> <li>Sonar 1.11.1</li> <li>Hudson 1.330</li> </ul> <h3><a name="03">3. Comenzamos con la integración.</a></h3> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- @page { margin: 2cm } P { margin-bottom: 0.4cm; text-align: justify; page-break-before: auto } --> <p>Una de las ventajas que proporciona Hudson en relación a otras herramientas similares es el uso de plugins que extienden su funcionalidad. Uno de estos plugins permite la integración con Sonar.</p> <p>Para instalar un plugin en Hudson desde la página principal de la herramienta vamos a “Manage Hudson” → “Manage Plugins” y en la pestaña “Available” buscamos la entrada que se corresponda con el plugin de Sonar.</p> <p><img src="IntegrandoSonarConHudson/IntegrandoSonarConHudson_img1.png" width="689" height="59" /></p> <p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <!-- @page { margin: 2cm } P { margin-bottom: 0.4cm; text-align: justify; page-break-before: auto } --> <BODY DIR="LTR"> </p> <p>Lo único que tenemos que hacer es marcar la casilla del plugin correspondiente y pulsamos en el botón “Install” que está al final de la tabla. Al hacer esto Hudson se encarga de la instalación completa del plugin, conectándose a los recursos necesarios. Al final de este proceso tenemos que pulsar en el botón “Restart Now”.</p> <p><img src="IntegrandoSonarConHudson/IntegrandoSonarConHudson_img2.png" width="876" height="263" /></p> <p> </p> <p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <!-- @page { margin: 2cm } P { margin-bottom: 0.4cm; text-align: justify; page-break-before: auto } --> <BODY DIR="LTR"> </p> <p> </p> <p>En el momento en el que este plugin este instalado ya podremos utilizarlo con los “Jobs” de Hudson que consideremos oportunos. Para ello seleccionamos el proyecto (o creamos uno nuevo) y veremos que se ha incorporado una sección nueva en las opciones llamada “Sonar”.</p> <p><img src="IntegrandoSonarConHudson/IntegrandoSonarConHudson_img3.png" width="684" height="336" /></p> <p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <!-- @page { margin: 2cm } P { margin-bottom: 0.4cm; text-align: justify; page-break-before: auto } --> <BODY DIR="LTR"> </p> <p>Si hemos instalado Sonar con los parámetros por defecto dejaríamos el valor “Default” del campo “Sonar Installation” y podemos seleccionar cualquiera de los triggers que necesitemos:</p> <ul> <li> <p>Poll SCM: se lanza el análisis de Sonar cuando Hudson lanza un evento de cambio en el control de versiones.</p> </li> <li> <p>Build periodically: se lanza el análisis de Sonar cuando Hudson lanza un evento de build periódico del trabajo. Esto se define en las propiedades del trabajo no de Sonar. </p> </li> <li> <p>Build whenever a SNAPSHOT dependency is built: se lanza el análisis de Sonar cuando Hudson lanza un evento de dependencia SNAPSHOT construida.</p> </li> <li> <p>Skip analysis on build failure: si marcamos está opción no se va a lanzar el análisis de Sonar hasta que la construcción del trabajo sea satisfactoria.</p> </li> </ul> <p>En caso de no utilizar los parámetros por defecto en la instancia de Sonar que hayamos instalado tenemos que configurarlo con nuestros parámetros. Para ello, desde la página principal de Hudson vamos a “Manage Hudson” → “Configure System” y en la sección Sonar pulsamos en el botón “Add” para añadir una instalación personalizada de Sonar . Aquí damos un nombre a nuestra instalación, por ejemplo, “sonar” y pulsamos en el botón “Advanced”. Rellenemos el formulario que se muestra con la información de la instalación de Sonar que tengamos y pulsamos en el botón “Save”.</p> <img src="IntegrandoSonarConHudson/IntegrandoSonarConHudson_img4.png" width="687" height="483" /> <p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <!-- @page { margin: 2cm } P { margin-bottom: 0.4cm; text-align: justify; page-break-before: auto } --> <BODY DIR="LTR"> </p> <p>Ahora si volvemos a la configuración del trabajo (Opción “Configure” del trabajo seleccionado) veremos que se ha añadido una nueva entrada al combo de “Sonar Installation” con el nombre sonar.</p> <img src="IntegrandoSonarConHudson/IntegrandoSonarConHudson_img5.png" width="679" height="205" /> <p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <!-- @page { margin: 2cm } P { margin-bottom: 0.4cm; text-align: justify; page-break-before: auto } --> <BODY DIR="LTR"> </p> <p>Ahora al hacer “Build Now” del trabajo si todo compila y se pasan los test satisfactoriamente veremos que en la página principal de Sonar se ha creado una nueva entrada con el análisis del trabajo.</p> <h3><a name="05">4. Conclusiones</a></h3> <p>Que gustazo da cuando ves que las herramientas de unos y otros se integran perfectamente para facilitarte el trabajo y todo gracias a que nuestros proyectos están creados con Maven 2 que es el pegamento de todas estas herramientas. Queda habilitada la zona de comentarios para posibles problemas o inquietudes con el fin de todo el mundo pregunte o aporte lo que quiera al respecto. </p> <p>Saludos.</p> </body> </html> <div class="content_comentario"> <div class="content_titulo_tutorial"> Anímate y coméntanos lo que pienses sobre este <span class="negrita">TUTORIAL: </span> </div> <div class="comentario"> <p class="parrafo_comentario">Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.</p> <form action="#" method="POST" id="sendCommentForm"> <input type="hidden" name="add_comentario_form_sended" value="1"/> <input type="hidden" name="comment_ref_type" value="t"/> <input type="hidden" name="comment_ref_id" value="IntegrandoSonarConHudson"/> <textarea name="comment_panel_text" id="comment_panel_text" rows="5" cols="80" style="width:100%" title="Escribe tu comentario"></textarea> <p><input type="submit" name="sendComment" value="Enviar comentario" class="botonlargo inline" title="Enviar comentario" disabled="disabled"> <br/>(Sólo para usuarios registrados)</p> <h3><a href="/register.php"><span class="negra">» Registrate</span> <span class="normal">y accede a esta y otras ventajas</span> <span class="negra">«</span> </a></h3> </form> </div> <div class="content_pie_tutorial"></div> </div> <div id="tutorials"> <div class="block_comentarios"> <h3>Comentarios</h3> </div> </div> </div> <div id="tutorialFoot"> <!--Creative Commons License--> <p> <a href="http://creativecommons.org/licenses/by-nc-nd/2.5/es/" target="_blank"><img src="http://creativecommons.org/images/public/somerights20.png" name="graphics1" alt="Creative Commons License" align=bottom width=88 height=31 border=0 class="img-licencia" /></a> Esta obra está licenciada bajo <a href="http://creativecommons.org/licenses/by-nc-nd/2.5/es/" target="_blank">licencia Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5</a></p><!--/Creative Commons License--> <!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <Work rdf:about=""> <license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/2.5/es/" /> <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" /> </Work> <License rdf:about="http://creativecommons.org/licenses/by-nc-nd/2.5/es/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><prohibits rdf:resource="http://web.resource.org/cc/CommercialUse"/></License></rdf:RDF> --> </div> <div class="clear"> <div class="bloque_pie"> <div id="pie-left" class="wrapper"></div> <div id="footer"> <p id="copyright">Copyright 2003-2010 © All Rights Reserved | <a href="../textolegal.php" target="_blank">Texto legal y condiciones de uso</a> | <a href="http://www.adictosaltrabajo.com/banners.php" target="_blank">Banners</a> | <a href="http://www.autentia.com/" target="_blank">Powered by Autentia</a> | <a href="http://www.autentia.com/contacto.htm" target="_blank">Contacto</a></p> <p id="acronyms"> <a href="http://validator.w3.org/check/referer" target="_blank"><img src="../skins/new/images/xhtml.png" alt="xhtml 1.0"></a> <a href="http://jigsaw.w3.org/css-validator/check/referer?warning=no" target="_blank"><img src="../skins/new/images/css.png" alt="css"></a> <a href="../feeds.php" target="_blank"><img src="../skins/new/images/rss.png" alt="rss"></a> <a href="../feeds.php" target="_blank"><img src="../skins/new/images/atom.png" alt="atom"></a> </p> </div> <div id="pie-right" class="wrapper"></div> </div> </div> </div> <div style="display: none; visibility: hidden; opacity: 0;" id="lbOverlay"></div> <div style="display: none;" id="lbCenter"> <div id="lbImage"><a href="#" id="lbPrevLink"></a><a href="#" id="lbNextLink"></a></div> </div> <div style="display: none;" id="lbBottomContainer"> <div id="lbBottom"><a href="#" id="lbCloseLink"></a><div id="lbCaption"></div> <div id="lbNumber"></div> <div style="clear: both;"></div> </div> </div> </body> </html>