{"id":502,"date":"2013-05-12T14:05:43","date_gmt":"2013-05-12T13:05:43","guid":{"rendered":"http:\/\/qualilogy.com\/es\/?p=502"},"modified":"2013-09-01T15:38:25","modified_gmt":"2013-09-01T14:38:25","slug":"instalar-sonarqube-analisis-sonarqub-con-jenkins","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/instalar-sonarqube-analisis-sonarqub-con-jenkins\/","title":{"rendered":"Instalar SonarQube &#8211; An\u00e1lisis SonarQube con Jenkins"},"content":{"rendered":"<p><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-821\" alt=\"Analyse Sonar avec Jenkins\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsAnalysis.jpg\" width=\"239\" height=\"360\" \/><\/a>Esta serie de art\u00edculos sobre la instalaci\u00f3n de SonarQube terminar\u00e1 con este post. Recuerda cu\u00e1les eran los objetivos:<\/p>\n<ul>\n<li>Establecer un entorno de an\u00e1lisis de c\u00f3digo para medir la calidad de las aplicaciones.<\/li>\n<li>Sin necesidad de conocimientos t\u00e9cnicos de Java, bases de datos, de red o herramientas de c\u00f3digo abierto.<\/li>\n<\/ul>\n<p>Eres un profesional en el mundo Cobol Mainframe o SAP, un consultor de la calidad, una interfaz entre los usuarios y los equipos de proyecto (stakeholder), un jefe de proyecto gestionando diferentes aplicaciones subcontratadas a diferentes proevedores: esta serie mostr\u00f3 los pasos para instalar SonarQube en tu PC, para analizar f\u00e1cilmente y con regularidad cualquier entrega de c\u00f3digo o versi\u00f3n de aplicaci\u00f3n.<\/p>\n<p><!--more--><\/p>\n<p>Y vamos a terminar hoy con un an\u00e1lisis del c\u00f3digo Java que se utiliz\u00f3 anteriormente con <a title=\"Realizar un an\u00e1lisis de c\u00f3digo con el Sonar Runner\" href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-analis-con-sonar-runner\/\" target=\"_blank\">el SonarQube Runner<\/a>, y de una forma sencilla con <a title=\"Install Sonar - The Sonar Jenkins plugin\" href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-el-plugin-sonar-para-jenkins\/\" target=\"_blank\">el plugin SonarQube para Jenkins<\/a>.<\/p>\n<h2>Creaci\u00f3n de un an\u00e1lisis de SonarQube con Jenkins<\/h2>\n<p>Nuestro primer an\u00e1lisis con SonarQube Jenkins se centrar\u00e1 en el c\u00f3digo Java ya utilizado en <a href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-analis-con-sonar-runner\/\" target=\"_blank\">nuestro an\u00e1lisis con SonarQube Runner<\/a>.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsNuevaTarea.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-833\" alt=\"Jenkins nouveau projet\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsNuevaTarea.jpg\" width=\"189\" height=\"125\" \/><\/a><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Para ello,<\/span> <span class=\"hps\">vamos a crear<\/span> <span class=\"hps\">un proyecto<\/span> <span class=\"hps\">en el men\u00fa<\/span> <span class=\"hps\">Jenkins<\/span> <span class=\"hps\">en<\/span> <span class=\"hps\">la parte superior izquierda<\/span> <span class=\"hps\">de la p\u00e1gina.<\/span><\/span><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Seleccione el men\u00fa<\/span> <span class=\"hps atn\">&#8216;<\/span><span class=\"hps\">Nueva<\/span> <span class=\"hps\">Tarea<\/span>&#8216;<span>:<\/span> <span class=\"hps\">Jenkins<\/span> <span class=\"hps\">muestra<\/span> <span class=\"hps\">la pagina de creaci\u00f3n de<\/span> <span class=\"hps\">un nuevo &#8216;job&#8217;.<\/span><\/span><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Es<\/span> <span class=\"hps\">posible crear<\/span> <span class=\"hps\">diferentes<\/span> <span class=\"hps\">tipos de<\/span> <span class=\"hps\">proyectos de acuerdo con<\/span> <span class=\"hps\">las herramientas utilizadas\u00a0<\/span><span class=\"hps\">(como<\/span> <span class=\"hps\">Maven<\/span><span>)<\/span><span>.<\/span> <span class=\"hps\">Con<\/span> <span class=\"hps\">SonarQube<\/span><span>,<\/span> <span class=\"hps\">vamos a elegir la<\/span> <span class=\"hps\">primera<\/span> <span class=\"hps\">opci\u00f3n<\/span>\u00a0<span class=\"hps atn\">&#8216;<\/span><span>Crear<\/span> <span class=\"hps\">un<\/span> <span class=\"hps\">proyecto<\/span> <span class=\"hps\">de<\/span> <span class=\"hps\">estilo<\/span> <span class=\"hps\">libre&#8217;<\/span> <span class=\"hps\">y escribir<\/span> <span class=\"hps\">un nombre de proyecto: <\/span><span>&#8216;<\/span><span class=\"hps\">Extranet<\/span>&#8216; <span>en mi ejemplo.<\/span> <span class=\"hps\">El bot\u00f3n<\/span> <span class=\"hps\">&#8216;OK&#8217;<\/span> <span class=\"hps\">en<\/span> <span class=\"hps\">la parte inferior<\/span> <span class=\"hps\">de la p\u00e1gina<\/span> <span class=\"hps\">se vuelve activo<\/span><span>.<\/span><\/span><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectPage.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-835\" alt=\"Page de projet Jenkins\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectPage.jpg\" width=\"601\" height=\"248\" \/><\/a><\/p>\n<p>Tenga en cuenta que tenemos un mensaje de error si utilizamos un nombre de proyecto que ya existe.<\/p>\n<p>Click en el bot\u00f3n &#8216;OK&#8217; para acceder a la p\u00e1gina de configuraci\u00f3n del proyecto.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsStandalone.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-837\" alt=\"JenkinsStandalone\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsStandalone.jpg\" width=\"281\" height=\"166\" \/><\/a>No voy a detallar las muchas opciones disponibles en esta p\u00e1gina. Nunca las he usado, a excepci\u00f3n de la gesti\u00f3n de los logs, para eliminarlos autom\u00e1ticamente m\u00e1s all\u00e1 de una fecha determinada, o cuando se vuelven demasiado numerosos.<\/p>\n<p>Simplemente seleccione el bot\u00f3n &#8216;A\u00f1adir un nuevo paso&#8217; que abre la siguiente lista de men\u00fas en la que elegimos \u2018Invoke Standalone Sonar Analysis\u2019 (si, este \u00faltimo men\u00fa en ingles, parece que se ha olvidado traducirlo).<\/p>\n<p>Esto abre la p\u00e1gina de configuraci\u00f3n para este proyecto:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectDetails.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-839\" alt=\"JenkinsProjectDetails\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectDetails.jpg\" width=\"600\" height=\"244\" \/><\/a><\/p>\n<p>Solamente tengo que entrar el nombre del archivo properties que contiene los par\u00e1metros de <a title=\"Instalar Sonar Runner\" href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-analis-con-sonar-runner\/\" target=\"_blank\">nuestro primer an\u00e1lisis<\/a> con el SonarQube Runner, el &#8216;sonar project.properties&#8217;, ubicado en un directorio &#8216;..\\Projects (en la carpeta &#8216;home&#8217; del SonarQube Runner).<\/p>\n<p>En este post, te dije que era importante de administrar correctamente nuestro entorno, eljiendo d\u00f3nde, para cada aplicaci\u00f3n, ubicamos el c\u00f3digo fuente y todo lo que contribuye a la configuraci\u00f3n de an\u00e1lisis. Para cada proyecto, tengo un directorio &#8216;source&#8217; con el c\u00f3digo correspondiente, y un otro directorio &#8216;Implementation\\Conf&#8217; en el que voy a mantener el archivo de properties espec\u00edficas en este an\u00e1lisis.<\/p>\n<p>Este m\u00e9todo tiene muchas ventajas, incluyendo:<\/p>\n<ul>\n<li>Encontrar f\u00e1cilmente los par\u00e1metros de cualquier an\u00e1lisis, incluso mucho tiempo despu\u00e9s de ella.<\/li>\n<li>Duplicar f\u00e1cilmente los valores de un an\u00e1lisis que funciona a la perfecci\u00f3n con una copia el mismo archivo para un proyecto nuevo. Queda entonces modificar los valores de estos par\u00e1metros, pero s\u00e9 que no me he olvidado nada en la configuraci\u00f3n, por lo que ning\u00fan error puede occurir debido a esta.<\/li>\n<li>Si trabajas con un servidor compartido, siga la misma configuraci\u00f3n (y pr\u00e1cticas similares) lo que te permitir\u00e1 ir de vacaciones tranquilo: todos los dem\u00e1s miembros de tu equipo sabr\u00e1n exactamente c\u00f3mo encargarse de tus proyectos sin haber participado en ellos. Esto no impide alguna documentaci\u00f3n (que mantener en la carpeta &#8216;Implementation\\Doc&#8217;), pero va a ser muy breve: una sincilla hoja de descripci\u00f3n del an\u00e1lisis.<\/li>\n<\/ul>\n<p>Entonces, tengo exactamente el mismo fichero &#8216;properties&#8217; que contiene los mismos par\u00e1metros de <a title=\"Instalar Sonar Runner\" href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-analis-con-sonar-runner\/\" target=\"_blank\">nuestro primer an\u00e1lisis<\/a> con el SonarQube Runner.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectProperties.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-840\" alt=\"JenkinsProjectProperties\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectProperties.jpg\" width=\"484\" height=\"111\" \/><\/a><\/p>\n<p>Otra ventaja que me permite Jenkins es reemplazar cualquier valor en el archivo de la p\u00e1gina de configuraci\u00f3n &#8216;Invoke Standalone Sonar Analysis&#8217;, para por ejemplo especificar un n\u00famero de versi\u00f3n para este an\u00e1lisis o versi\u00f3n de aplicaci\u00f3n:<\/p>\n<p style=\"padding-left: 30px;\"><strong>sonar.projectVersion=1.1<\/strong><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsConstruir.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-842\" alt=\"JenkinsConstruir\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsConstruir.jpg\" width=\"144\" height=\"42\" \/><\/a>No se olvide de guardar la configuraci\u00f3n antes de empezar el an\u00e1lisis con el men\u00fa &#8216;Construir ahora&#8217;.<\/p>\n<h2>Ejecuci\u00f3n y log<\/h2>\n<p>Una barra de progreso muestra donde estamos en el an\u00e1lisis.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsExec.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-845\" alt=\"JenkinsExec\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsExec.jpg\" width=\"470\" height=\"151\" \/><\/a><\/p>\n<p>Un men\u00fa desplegable (men\u00fa contextual) nos permite ver el log del job durante o al final del an\u00e1lisis,<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsLog.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-846\" alt=\"JenkinsLog\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsLog.jpg\" width=\"1075\" height=\"194\" \/><\/a><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Si haces click en<\/span> <span class=\"hps\">la imagen anterior de log<\/span><span>, puedes ver<\/span> <span class=\"hps\">los diversos<\/span> <span class=\"hps\">par\u00e1metros que<\/span> <span class=\"hps\">hemos indicado <\/span><span class=\"hps\">en<\/span> <span class=\"hps\">nuestra configuraci\u00f3n de<\/span> <span class=\"hps\">Jenkins.<\/span> <\/span><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">En<\/span> <span class=\"hps\">la misma p\u00e1gina<\/span><span>,\u00a0<\/span><span class=\"hps\">un men\u00fa<\/span> <span class=\"hps\">que permite<\/span> <span class=\"hps\">ver este log<\/span> <span class=\"hps\">en modo texto<\/span> <span class=\"hps\">con el fin de<\/span> <span class=\"hps\">guardarlo o enviar<\/span> <span class=\"hps\">por correo electr\u00f3nico,<\/span> <span class=\"hps\">por ejemplo. <\/span><\/span><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Y, por \u00faltimo<\/span><span>,<\/span> <span class=\"hps\">el resultado en<\/span> <span class=\"hps\">SonarQube<\/span><span>.<\/span><\/span><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsSonarResult.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-848\" alt=\"JenkinsSonarResult\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsSonarResult.jpg\" width=\"419\" height=\"57\" \/><\/a><\/p>\n<p>Hemos visto en este art\u00edculo las principales ventajas de la utilizaci\u00f3n de Jenkins con Sonar:<\/p>\n<ul>\n<li>Organizar el entorno de an\u00e1lisis como deseamos, con un archivo de configuraci\u00f3n para cada proyecto, y que podemos duplicar para reutilizarlo para un nuevo an\u00e1lisis.<\/li>\n<li>Poder sustituir un par\u00e1metro &#8211; como el n\u00famero de versi\u00f3n &#8211; para cada an\u00e1lisis.<\/li>\n<li>Tener un log mucho m\u00e1s f\u00e1cil de usar.<\/li>\n<\/ul>\n<p>Con este \u00faltimo articulo, sab\u00e9is todo lo que es necesario conocer para hacer vuestros propios an\u00e1lisis y medir f\u00e1cilmente las calidad de diferentes aplicaciones y diferentes tecnolog\u00edas, sin necesidad de tener ning\u00fan conocimiento t\u00e9cnico especial.<\/p>\n<p>Me refiero tambi\u00e9n a otras dos series en mi blog, en el an\u00e1lisis de las aplicaciones <a href=\"http:\/\/qualilogy.com\/es\/category\/sonar\/sonar-cobol\/\" target=\"_blank\">Cobol<\/a> ou <a href=\"http:\/\/qualilogy.com\/es\/category\/sonar\/sonar-abap\/\" target=\"_blank\">SAP<\/a> con SonarQube.<\/p>\n<p>A vosotros ahora. Y no dudad en dejar un comentario con el resultado de vuestros an\u00e1lisis.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta serie de art\u00edculos sobre la instalaci\u00f3n de SonarQube terminar\u00e1 con este post. Recuerda cu\u00e1les eran los objetivos: Establecer un entorno de an\u00e1lisis de c\u00f3digo para medir la calidad de las aplicaciones. Sin necesidad de conocimientos t\u00e9cnicos de Java, bases de datos, de red o herramientas de c\u00f3digo abierto. Eres un profesional en el mundo [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-502","post","type-post","status-publish","format-standard","hentry","category-sonar-instalacion"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/502"}],"collection":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/comments?post=502"}],"version-history":[{"count":22,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/502\/revisions"}],"predecessor-version":[{"id":504,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/502\/revisions\/504"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=502"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}