{"id":820,"date":"2013-05-09T06:03:48","date_gmt":"2013-05-09T05:03:48","guid":{"rendered":"http:\/\/qualilogy.com\/fr\/?p=820"},"modified":"2013-09-01T15:29:40","modified_gmt":"2013-09-01T14:29:40","slug":"installer-sonarqube-analyse-sonarqube-avec-jenkins","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/installer-sonarqube-analyse-sonarqube-avec-jenkins\/","title":{"rendered":"Installer SonarQube &#8211; Analyse SonarQube avec 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\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsAnalysis.jpg 239w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsAnalysis-199x300.jpg 199w\" sizes=\"(max-width: 239px) 100vw, 239px\" \/><\/a>Notre s\u00e9rie d&rsquo;articles sur l&rsquo;installation de SonarQube va prendre fin avec ce post. Rappelons quels en \u00e9taient les objectifs :<\/p>\n<ul>\n<li>Mettre en place un environnement d\u2019analyse de code permettant de mesurer la qualit\u00e9 d&rsquo;applications.<\/li>\n<li>Sans n\u00e9cessiter de connaissances techniques en mati\u00e8re de Java, de bases de donn\u00e9es, de r\u00e9seau ou d&rsquo;outils Open Source.<\/li>\n<\/ul>\n<p>Vous \u00eates un pro du monde Mainframe-Cobol ou SAP, un consultant Qualit\u00e9, un responsable MOA interface entre les utilisateurs et les \u00e9quipes de projet, un chef de projet g\u00e9rant des outsourcers pour votre d\u00e9partement IT : cette s\u00e9rie d&rsquo;articles vous a montr\u00e9 pas \u00e0 pas comment installer SonarQube\u00a0sur votre PC (un simple portable dans mon cas) pour analyser facilement et r\u00e9guli\u00e8rement toute livraison de code ou version d&rsquo;applications. <!--more--><\/p>\n<p>Et nous allons terminer aujourd&rsquo;hui par une analyse du code Java que nous avons pr\u00e9c\u00e9demment <img decoding=\"async\" title=\"Lire la suite\u2026\" alt=\"\" src=\"http:\/\/qualilogy.com\/fr\/wp-includes\/js\/tinymce\/plugins\/wordpress\/img\/trans.gif\" \/>utilis\u00e9 avec <a title=\"R\u00e9aliser une analyse de code avec le Sonar Runner\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-analyse-avec-sonar-runner\/\" target=\"_blank\">le SonarQube\u00a0Runner<\/a>, en param\u00e9trant celle-ci de mani\u00e8re tr\u00e8s simple avec <a title=\"Install Sonar - The Sonar Jenkins plugin\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-le-plugin-sonar-pour-jenkins\/\" target=\"_blank\">le plugin SonarQube pour Jenkins<\/a>.<\/p>\n<h2>Cr\u00e9ation d&rsquo;une analyse SonarQube avec Jenkins<\/h2>\n<p>Notre premi\u00e8re analyse SonarQube\u00a0avec Jenkins portera sur le code Java d\u00e9j\u00e0 utilis\u00e9 lors de notre analyse avec <a title=\"R\u00e9aliser une analyse de code avec le Sonar Runner\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-analyse-avec-sonar-runner\/\" target=\"_blank\">le 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>Pour cela, nous allons cr\u00e9er un projet, depuis le menu de Jenkins dans la partie sup\u00e9rieure gauche de la page principale.<\/p>\n<p>S\u00e9lectionner le menu \u2018Nouveau projet\u2019 (&lsquo;Nueva Tarea&rsquo; dans mon interface en espagnol) : Jenkins affiche la page de cr\u00e9ation d\u2019un projet.<\/p>\n<p>Il est possible de cr\u00e9er diff\u00e9rents types de projets en fonction de l\u2019outillage utilis\u00e9 (comme par exemple Maven). Avec SonarQube, nous allons choisir la premi\u00e8re option &lsquo;Build a free-style software project&rsquo; (&lsquo;Crear un proyecto de estilo libre&rsquo; dans l&rsquo;\u00e9cran ci-dessous) et entrer un nom de projet :&rsquo;Extranet&rsquo; dans notre exemple. Le bouton \u2018Ok\u2019 en fin de page devient actif.<\/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\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectPage.jpg 601w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectPage-300x123.jpg 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<p>A noter qu\u2019un message d\u2019erreur vous interdit d\u2019utiliser un nom de projet d\u00e9j\u00e0 existant.<\/p>\n<p>Cliquer sur le bouton \u2018OK\u2019 afin d\u2019acc\u00e9der \u00e0 la page de configuration du projet.<\/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>Je ne vais pas d\u00e9tailler les nombreuses options disponibles dans cette page. Je ne les utilise jamais, \u00e0 l&rsquo;exception de la gestion des logs qui permet de les supprimer automatiquement au-del\u00e0 d&rsquo;une certaine date, ou lorsqu&rsquo;ils deviennent trop nombreux.<\/p>\n<p>Nous nous contentons de s\u00e9lectionner le bouton \u2018Ajouter une nouvelle t\u00e2che\u2019 qui ouvre la liste de menus suivante dans laquelle nous choisissons \u2018Invoke Standalone Sonar Analysis\u2019.<\/p>\n<p>Ceci nous ouvre la page de configuration pour ce projet :<\/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\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectDetails.jpg 600w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectDetails-300x122.jpg 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>Il me suffit d&rsquo;indiquer dans cette page le fichier properties qui contient les param\u00e8tres de notre <a title=\"R\u00e9aliser une analyse de code avec le Sonar Runner\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-analyse-avec-sonar-runner\/\" target=\"_blank\">premi\u00e8re analyse avec le SonarQube Runner<\/a>, d\u00e9finis dans un fichier &lsquo;sonar-project.properties&rsquo; localis\u00e9 dans un r\u00e9pertoire &lsquo;..\\Projects (sous le dossier &lsquo;home&rsquo; du SonarQube Runner).<\/p>\n<p>Et dans ce post, je vous avais dit qu&rsquo;il \u00e9tait important de bien g\u00e9rer votre environnement en d\u00e9finissant clairement o\u00f9 se trouvent, pour chaque application, le code source et tout ce qui participe \u00e0 la configuration d&rsquo;analyse. J&rsquo;ai ainsi, pour chaque projet, un r\u00e9pertoire &lsquo;Source&rsquo; avec le code correspondant, et un dossier &lsquo;Impl\u00e9mentation\\Conf&rsquo; dans lequel je vais garder le fichier properties sp\u00e9cifique \u00e0 cette analyse et de m\u00eame nom.<\/p>\n<p>Cette m\u00e9thode a de nombreux avantages, notamment :<\/p>\n<ul>\n<li>Pouvoir retrouver tr\u00e8s facilement les param\u00e8tres d&rsquo;une analyse, m\u00eame tr\u00e8s longtemps apr\u00e8s celle-ci.<\/li>\n<li>Pourvoir dupliquer tr\u00e8s facilement les param\u00e8tres d&rsquo;une analyse qui fonctionne parfaitement en copiant ce m\u00eame fichier pour un nouveau projet. Il ne reste ensuite qu&rsquo;\u00e0 modifier les valeurs de ces param\u00e8tres, mais je sais que je n&rsquo;aurais pas d&rsquo;oubli dans ma configuration, et donc qu&rsquo;aucune erreur ne proviendra de celle-ci.<\/li>\n<li>Si vous travaillez \u00e0 plusieurs sur un serveur partag\u00e9, adopter la m\u00eame configuration (et les m\u00eames pratiques) vous permettra de partir en vacances tranquille : tous les autres membres de votre \u00e9quipe sauront exactement comment reprendre vos projets sans m\u00eame y avoir particip\u00e9. Cela n&rsquo;interdit pas un peu de documentation (\u00e0 garder dans le dossier &lsquo;Impl\u00e9mentation\\Docs&rsquo;) mais celle-ci sera tr\u00e8s succincte : une simple fiche de description de l&rsquo;application et de votre analyse.<\/li>\n<\/ul>\n<p>J&rsquo;utilise donc exactement le m\u00eame fichier properties que celui cr\u00e9\u00e9 pour notre <a title=\"R\u00e9aliser une analyse de code avec le Sonar Runner\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-analyse-avec-sonar-runner\/\" target=\"_blank\">premi\u00e8re analyse avec le SonarQube Runner.<\/a><\/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\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectProperties.jpg 484w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsProjectProperties-300x68.jpg 300w\" sizes=\"(max-width: 484px) 100vw, 484px\" \/><\/a><\/p>\n<p>Un autre avantage que me permet Jenkins est de pouvoir surcharger n&rsquo;importe quelle valeur pr\u00e9sente dans ce fichier depuis la page de configuration &lsquo;Invoke Standalone Sonar Analysis&rsquo;, et comme vous pouvez le voir dans la figure ant\u00e9rieure : sp\u00e9cifier un nouveau num\u00e9ro de version pour cette analyse ou cette application :<\/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>N&rsquo;oubliez pas de sauvegarder vos param\u00e8tres avant de lancer votre analyse.<\/p>\n<h2>Ex\u00e9cution et log<\/h2>\n<p>Une barre de progression vous montre le d\u00e9roulement de celle-ci.<\/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\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsExec.jpg 470w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsExec-300x96.jpg 300w\" sizes=\"(max-width: 470px) 100vw, 470px\" \/><\/a><\/p>\n<p>Un menu d\u00e9roulant vous permet de voir le log pour cette t\u00e2che, durant ou la la fin de celle-ci.<\/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\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsLog.jpg 1075w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsLog-300x54.jpg 300w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsLog-1024x184.jpg 1024w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsLog-624x112.jpg 624w\" sizes=\"(max-width: 1075px) 100vw, 1075px\" \/><\/a><\/p>\n<p>En cliquant sur l&rsquo;image pr\u00e9c\u00e9dente, vous pouvez voir les diff\u00e9rents param\u00e8tres que nous avons effectivement indiqu\u00e9 dans notre configuration Jenkins.<\/p>\n<p>Dans cette m\u00eame page de log, vous disposez d&rsquo;un menu qui vous permet d&rsquo;afficher ce log en mode texte afin de pouvoir le sauvegarder ou l&rsquo;envoyer par mail, par exemple.<\/p>\n<p>Et finalement, le r\u00e9sultat dans SonarQube.<\/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\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsSonarResult.jpg 419w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/05\/JenkinsSonarResult-300x40.jpg 300w\" sizes=\"(max-width: 419px) 100vw, 419px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Nous avons pu voir dans cet article les principaux avantages de l&rsquo;utilisation de Jenkins avec SonarQube :<\/p>\n<ul>\n<li>Organiser notre environnement d&rsquo;analyse comme nous le souhaitons, avec un fichier de configuration sp\u00e9cifique \u00e0 chaque projet, que nous pourrons dupliquer \u00e0 volont\u00e9.<\/li>\n<li>Pouvoir surcharger un param\u00e8tre &#8211; comme le num\u00e9ro de version &#8211; pour chaque analyse.<\/li>\n<li>Disposer d&rsquo;un log beaucoup plus convivial \u00e0 consulter qu&rsquo;une fen\u00eatre DOS.<\/li>\n<\/ul>\n<p>Voli\u00e1 tout ce qu&rsquo;il est n\u00e9cessaire de savoir afin de monter votre propre environnement d&rsquo;analyse et ainsi mesurer facilement la qualilt\u00e9 diff\u00e9rents de diff\u00e9rentes applications et de diff\u00e9rentes technologies, sans n\u00e9cessiter de connaissances techniques particuli\u00e8res.<\/p>\n<p>Je vous renvoie d&rsquo;ailleurs \u00e0 deux autres s\u00e9ries sur mon blog, portant sur l&rsquo;analyse d&rsquo;applications <a href=\"http:\/\/qualilogy.com\/fr\/category\/sonar\/sonar-cobol\/\" target=\"_blank\">Cobol<\/a> ou <a href=\"http:\/\/qualilogy.com\/fr\/category\/sonar\/sonar-abap\/\" target=\"_blank\">SAP<\/a> avec SonarQube.<\/p>\n<p>A vous maintenant. Et n&rsquo;h\u00e9sitez pas \u00e0 laisser un commentaire si vos analyses sont fructueuses.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Notre s\u00e9rie d&rsquo;articles sur l&rsquo;installation de SonarQube va prendre fin avec ce post. Rappelons quels en \u00e9taient les objectifs : Mettre en place un environnement d\u2019analyse de code permettant de mesurer la qualit\u00e9 d&rsquo;applications. Sans n\u00e9cessiter de connaissances techniques en mati\u00e8re de Java, de bases de donn\u00e9es, de r\u00e9seau ou d&rsquo;outils Open Source. Vous \u00eates [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-820","post","type-post","status-publish","format-standard","hentry","category-sonar-installation"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/820"}],"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=820"}],"version-history":[{"count":31,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/820\/revisions"}],"predecessor-version":[{"id":824,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/820\/revisions\/824"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=820"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}