{"id":68,"date":"2011-12-28T17:37:30","date_gmt":"2011-12-28T16:37:30","guid":{"rendered":"http:\/\/dev.qualilogy.com\/es\/?p=68"},"modified":"2013-01-04T17:38:26","modified_gmt":"2013-01-04T16:38:26","slug":"sonar-analisis-cobol-con-jenkins","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/sonar-analisis-cobol-con-jenkins\/","title":{"rendered":"Sonar &#8211; An\u00e1lisis Cobol con Jenkins"},"content":{"rendered":"<p>Hemos visto en el <a title=\"Jenkins - Plugin Sonar\" href=\"http:\/\/qualilogy.com\/es\/sonar-jenkins-plugin\" target=\"_blank\">post anterior<\/a> c\u00f3mo instalar el plugin Sonar para Jenkins. Ahora llega el momento de hacer nuestro primer an\u00e1lisis con Jenkins. Se centrar\u00e1 en el c\u00f3digo fuente Cobol ya utilizado en nuestro <a title=\"Sonar - Premi\u00e8re analyse\" href=\"http:\/\/qualilogy.com\/es\/sonar-primer-analisis\" target=\"_blank\">primer an\u00e1lisis con Sonar<\/a> y el Java Runner. <!--more--><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-578\" title=\"SonarJenkinsAnalysis1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis1.jpg\" alt=\"\" width=\"111\" height=\"29\" \/><\/a>Para eso, vamos a crear un proyecto, desde la p\u00e1gina principal de Jenkins.<\/p>\n<p>En la p\u00e1gina de creaci\u00f3n, entramos un nombre de proyecto y seleccionamos la primera opci\u00f3n: <a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis1_1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-579\" title=\"SonarJenkinsAnalysis1_1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis1_1.jpg\" alt=\"\" width=\"284\" height=\"72\" \/><\/a><\/p>\n<p>Esto nos abre la p\u00e1gina de configuraci\u00f3n de este proyecto, en la cual indicamos que deseamos efectuar un an\u00e1lisis Sonar:<a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis2a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-581\" title=\"SonarJenkinsAnalysis2a\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis2a.jpg\" alt=\"\" width=\"285\" height=\"139\" \/><\/a><\/p>\n<p>Nos queda indicar el fichero de configuraci\u00f3n para este an\u00e1lisis, lo mismo que ya hemos utilizado para nuestro <a title=\"Sonar - Premi\u00e8re analyse\" href=\"http:\/\/qualilogy.com\/es\/sonar-primer-analisis\" target=\"_blank\">primer an\u00e1lisis con Sonar<\/a>: <strong>C:\\Soft\\Sonar\\sonar-runner-1.1\\Projects\\sonar-project.properties<\/strong>:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-587\" title=\"SonarJenkinsAnalysis3\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis3.jpg\" alt=\"\" width=\"569\" height=\"78\" \/><\/a>Pero antes, vamos a especificar en este fichero una nueva versi\u00f3n para nuestro an\u00e1lisis: <strong>sonar.projectVersion=1.1<\/strong>.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis2b.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-589\" title=\"SonarJenkinsAnalysis2b\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis2b.jpg\" alt=\"\" width=\"68\" height=\"27\" \/><\/a>No olvides guardar los par\u00e1metros de tu proyecto.<\/p>\n<p>Antes de arrancarlo.<a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis2c.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-591\" title=\"SonarJenkinsAnalysis2c\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis2c.jpg\" alt=\"\" width=\"121\" height=\"24\" \/><\/a><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis4a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-593\" title=\"SonarJenkinsAnalysis4a\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis4a.jpg\" alt=\"\" width=\"270\" height=\"98\" \/><\/a>Mientras que se ejecuta&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis4b.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-595\" title=\"SonarJenkinsAnalysis4b\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis4b.jpg\" alt=\"\" width=\"134\" height=\"19\" \/><\/a>Podemos ver el log de an\u00e1lisis:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis41.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-597\" title=\"SonarJenkinsAnalysis4\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis41.jpg\" alt=\"\" width=\"1041\" height=\"261\" \/><\/a>Luego en Sonar, el resultado de este an\u00e1lisis, con la versi\u00f3n indicada en nuestro fichero de configuraci\u00f3n:<a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-598\" title=\"SonarJenkinsAnalysis5\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis5.jpg\" alt=\"\" width=\"505\" height=\"49\" \/><\/a><\/p>\n<p>Hemos visto c\u00f3mo evitar dos desventajas del Java Runner (que utilizamos por falta de pr\u00e1ctica de la sintaxis Maven):<\/p>\n<ol>\n<li>Un fichero \u00fanico de configuraci\u00f3n de an\u00e1lisis: Jenkins nos permite especificar un fichero distinto para cada an\u00e1lisis Sonar.<\/li>\n<li>Un log mucho m\u00e1s pr\u00e1ctico y f\u00e1cil de usar cada vez que lanzaremos uno de nuestros an\u00e1lisis Sonar.<\/li>\n<\/ol>\n<p>Esto nos permite una gran flexibilidad de utilizaci\u00f3n, particularmente en la organizaci\u00f3n de nuestro entorno de an\u00e1lisis. Vamos a ver dos ejemplos.<\/p>\n<p>Voy a comenzar por renombrar el fichero <strong>Myproject.properties<\/strong>, en la carpeta..<strong>\\sonar-runner-1.1\\Projects <\/strong>y la version de an\u00e1lisis (<strong>sonar.projectVersion=1.2<\/strong>) en este fichero (para comprobar que el ha sido utilizado).<\/p>\n<p>Luego voy a indicar este nuevo fichero en la configuraci\u00f3n de mi proyecto Jenkins antes de lanzar \u00e9ste de nuevo&#8230;<a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-693\" title=\"SonarJenkinsAnalysis6\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis6.jpg\" alt=\"\" width=\"559\" height=\"89\" \/><\/a><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-695\" title=\"SonarJenkinsAnalysis7\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis7.jpg\" alt=\"\" width=\"297\" height=\"175\" \/><\/a>Y verificar el resultado en Sonar: una nueva versi\u00f3n 1.2 efectivamente aparece. Esto significa que puedo utilizar un espacio &#8216;Project&#8217; con tantos ficheros de configuraciones que tengo de aplicaciones que analizar.<\/p>\n<p>&nbsp;<\/p>\n<p>Otro tipo de organizaci\u00f3n consiste en dedicar un disco duro a mi entorno de an\u00e1lisis, con una caperta por cada aplicaci\u00f3n, en la cual colocar\u00e9 el c\u00f3digo fuente y todos los ficheros de configuraci\u00f3n de an\u00e1lisis. En este segundo ejemplo, vamos a:<\/p>\n<ul>\n<li>Crear una carpeta <strong>G:\\Mainframe\\MyAppCobol<\/strong> para nuestra aplicaci\u00f3n.<\/li>\n<li>En esta carpeta, crear un sub-directorio <strong>\\Source<\/strong> en lo cual copiamos los programas Cobol que analizar.<\/li>\n<li>En esta carpeta, crear un sub-directorio <strong>\\Implementation\\Conf<\/strong> en lo cual ponemos el fichero de configuraci\u00f3n Sonar <strong>MyAppCobol.properties.<\/strong><\/li>\n<li>En este fichero, modificar la propriedad <strong>sources=G:\/Mainframe\/MyAppCobol\/Source<\/strong> con el fin de precisar el nuevo emplazamiento de los ficheros Cobol.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis81.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-699\" title=\"SonarJenkinsAnalysis8\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis81.jpg\" alt=\"\" width=\"341\" height=\"196\" \/><\/a>He aqu\u00ed al que se parece nuestro nuevo entorno.<\/p>\n<p>No nos queda m\u00e1s que modificar de nuevo la configuraci\u00f3n de proyecto Jenkins con el fin de tomar en consideraci\u00f3n el nuevo emplazamiento del fichero de configuraci\u00f3n Sonar, y de ejecutar un nuevo an\u00e1lisis.<a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis9.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-700\" title=\"SonarJenkinsAnalysis9\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/SonarJenkinsAnalysis9.jpg\" alt=\"\" width=\"614\" height=\"87\" \/><\/a><\/p>\n<div id=\"gt-res-content\">\n<p>As\u00ed podemos organizar nuestros an\u00e1lisis como lo deseamos, o sea centralizando todos los ficheros de configuraci\u00f3n en la misma carpeta \\Projets (por ejemplo), o sea descentralizando cada uno al nivel de una carpeta por aplicaci\u00f3n.<\/p>\n<p>Podemos administrar tantos an\u00e1lisis que lo deseamos, de cualquiera tecnolog\u00eda con los plugins Sonar, y beneficiar de la consola Jenkins para administrar el logs de an\u00e1lisis.<\/p>\n<p>Finalmente, la soluci\u00f3n implementada se basa en el Java Runner de Sonar sin necesidad de conocimientos especiales de otras herramientas como Ant o Maven.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hemos visto en el post anterior c\u00f3mo instalar el plugin Sonar para Jenkins. Ahora llega el momento de hacer nuestro primer an\u00e1lisis con Jenkins. Se centrar\u00e1 en el c\u00f3digo fuente Cobol ya utilizado en nuestro primer an\u00e1lisis con Sonar y el Java Runner.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-sonar-cobol","category-sonar-instalacion"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/68"}],"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=68"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/68\/revisions"}],"predecessor-version":[{"id":69,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/68\/revisions\/69"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}