{"id":126,"date":"2011-12-28T17:38:49","date_gmt":"2011-12-28T16:38:49","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=126"},"modified":"2013-01-04T17:39:33","modified_gmt":"2013-01-04T16:39:33","slug":"sonar-analyse-cobol-avec-jenkins","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/sonar-analyse-cobol-avec-jenkins\/","title":{"rendered":"Sonar &#8211; Analyse Cobol avec Jenkins"},"content":{"rendered":"<p>Nous avons vu dans le <a title=\"Jenkins - Plugin Sonar\" href=\"http:\/\/qualilogy.com\/fr\/sonar-jenkins-plugin\" target=\"_blank\">post pr\u00e9c\u00e9dent<\/a> comment installer le plugin Sonar pour Jenkins. Il est temps maintenant d&rsquo;effectuer notre premi\u00e8re analyse depuis Jenkins. Celle-ci portera sur le code source Cobol d\u00e9j\u00e0 utilis\u00e9 lors de notre <a title=\"Sonar - Premi\u00e8re analyse\" href=\"http:\/\/qualilogy.com\/fr\/sonar-premiere-analyse\" target=\"_blank\">premi\u00e8re analyse avec Sonar<\/a> et le 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>Pour cela, nous allons cr\u00e9er un projet, depuis la page principale de Jenkins.<\/p>\n<p>Dans la page de cr\u00e9ation, nous entrons un nom de projet et s\u00e9lectionnons la premi\u00e8re option: <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>Ceci nous ouvre la page de configuration de ce projet, dans laquelle il nous suffit d&rsquo;indiquer que nous souhaitons effectuer une analyse 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>Il nous reste simplement \u00e0 indiquer notre fichier de configuration pour cette analyse, le m\u00eame que d\u00e9j\u00e0 utilis\u00e9 pour notre <a title=\"Sonar - Premi\u00e8re analyse\" href=\"http:\/\/qualilogy.com\/fr\/sonar-premiere-analyse\" target=\"_blank\">premi\u00e8re analyse avec Sonar<\/a>, c&rsquo;est-\u00e0-dire : <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>Mais auparavant, nous allons sp\u00e9cifier dans ce fichier une nouvelle version pour notre analyse: <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>N&rsquo;oubliez pas de sauvegarder les param\u00e8tres de votre projet.<\/p>\n<p>Avant de lancer celui-ci.<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>Pendant que le projet s&rsquo;ex\u00e9cute&#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>Nous pouvons regarder le log d&rsquo;analyse:<\/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>Puis dans Sonar, le r\u00e9sultat de cette analyse, avec la version indiqu\u00e9e dans notre fichier de configuration:<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>Nous avons vu comment contourner deux inconv\u00e9nients du Java Runner (que nous utilisons par manque de pratique de la syntaxe Maven) :<\/p>\n<ol>\n<li>Un fichier unique de configuration d&rsquo;analyse : Jenkins nous permet de sp\u00e9cifier un fichier distinct pour chaque analyse Sonar.<\/li>\n<li>Un log beaucoup plus pratique et convivial chaque fois que nous lancerons une de nos analyses Sonar.<\/li>\n<\/ol>\n<p>Ceci nous permet une grande souplesse d&rsquo;utilisation, notamment dans l&rsquo;organisation de notre environnement d&rsquo;analyse. Nous allons voir deux exemples.<\/p>\n<p>Je vais commencer par renommer le fichier sonar-project.properties en <strong>Myproject.properties<\/strong>, dans le r\u00e9pertoire ..<strong>\\sonar-runner-1.1\\Projects<\/strong>. Je modifie \u00e9galement la version d&rsquo;analyse (<strong>sonar.projectVersion=1.2<\/strong>) dans ce fichier, simplement afin de v\u00e9rifier que celui-ci est bien pris en compte.<\/p>\n<p>Je vais ensuite indiquer ce nouveau fichier dans la configuration de mon projet Jenkins avant de lancer celui-ci \u00e0 nouveau&#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>Et de v\u00e9rifier le r\u00e9sultat dans Sonar : une nouvelle version 1.2 appara\u00eet effectivement. Ceci signifie que je peux utiliser un espace &lsquo;Projet&rsquo; avec autant de fichiers de configurations que j&rsquo;ai d&rsquo;applications \u00e0 analyser.<\/p>\n<p>&nbsp;<\/p>\n<p>Un autre type d&rsquo;organisation consiste \u00e0 d\u00e9dier un disque dur \u00e0 mon environnement d&rsquo;analyse, avec un dossier par application, au sein duquel je placerai \u00e0 la fois le code source applicatif, mais \u00e9galement tout fichier de configuration d&rsquo;analyse. Dans ce second exemple, je vais :<\/p>\n<ul>\n<li>Cr\u00e9er un r\u00e9pertoire <strong>G:\\Mainframe\\MyAppCobol<\/strong> pour mon application.<\/li>\n<li>Dans ce dossier, cr\u00e9er un sous-r\u00e9pertoire <strong>\\Source<\/strong> dans lequel je vais copier les programmes Cobol \u00e0 analyser.<\/li>\n<li>Dans ce dossier, cr\u00e9er un sous-r\u00e9pertoire <strong>\\Implementation\\Conf<\/strong> dans lequel je placerai mon fichier de configuration Sonar <strong>MyAppCobol.properties<\/strong><\/li>\n<li>Dans ce fichier, modifier l&rsquo;attribut <strong>sources=G:\/Mainframe\/MyAppCobol\/Source<\/strong> afin d&rsquo;indiquer le nouvel emplacement des fichiers 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>Voici \u00e0 quoi ressemble mon nouvel environnement.<\/p>\n<p>Il ne nous reste plus qu&rsquo;\u00e0 modifier \u00e0 nouveau la configuration de notre projet Jenkins afin de prendre en compte le nouvel emplacement du fichier de configuration Sonar, et d&rsquo;ex\u00e9cuter une nouvelle analyse.<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<p>Je peux donc organiser mes analyses comme je le souhaite, soit en centralisant tous les fichiers de configuration au sein d&rsquo;un m\u00eame dossier \\Projets (par exemple), soit en d\u00e9centralisant chacun au niveau d&rsquo;un dossier par application.<\/p>\n<p>Je peux g\u00e9rer autant d&rsquo;analyses que je le souhaite, de quelque technologie que ce soit avec les plugins Sonar, et b\u00e9n\u00e9ficier de la console de Jenkins pour g\u00e9rer les logs d&rsquo;analyse.<\/p>\n<p>Enfin, la solution mise en place repose sur le Java Runner de Sonar sans n\u00e9cessiter de connaissances particuli\u00e8res d&rsquo;autres outils tels que Maven ou Ant.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous avons vu dans le post pr\u00e9c\u00e9dent comment installer le plugin Sonar pour Jenkins. Il est temps maintenant d&rsquo;effectuer notre premi\u00e8re analyse depuis Jenkins. Celle-ci portera sur le code source Cobol d\u00e9j\u00e0 utilis\u00e9 lors de notre premi\u00e8re analyse avec Sonar et le 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":[6,5],"tags":[],"class_list":["post-126","post","type-post","status-publish","format-standard","hentry","category-sonar-cobol","category-sonar-installation"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/126"}],"collection":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":127,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/126\/revisions\/127"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}