{"id":119,"date":"2011-12-23T15:55:54","date_gmt":"2011-12-23T14:55:54","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=119"},"modified":"2013-01-04T15:56:45","modified_gmt":"2013-01-04T14:56:45","slug":"sonar-premiere-analyse","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/sonar-premiere-analyse\/","title":{"rendered":"Sonar &#8211; Premi\u00e8re analyse"},"content":{"rendered":"<p>Nous avons vu pr\u00e9c\u00e9demment <a title=\"Sonar - Installation\" href=\"http:\/\/qualilogy.com\/fr\/sonar-installation\" target=\"_blank\">comment installer Sonar et le Java Runner<\/a>. Celui-ci nous permet d&rsquo;effectuer des analyses sans passer par des outils tels que Maven ou Ant.<\/p>\n<p>Dans ce post, nous allons voir comment effectuer une premi\u00e8re analyse sur du code Mainframe-Cobol. <!--more--><\/p>\n<p>Rappelons que:<\/p>\n<ul>\n<li>Le fichier <strong>sonar-runner.properties<\/strong> est d\u00e9di\u00e9 \u00e0 la connexion \u00e0 Sonar et notre base de donn\u00e9es.<\/li>\n<li>Le fichier <strong>sonar-runner.bat<\/strong> nous permet de lancer une analyse.<\/li>\n<\/ul>\n<h3><span style=\"text-decoration: underline;\">Environnement d&rsquo;analyse<\/span><\/h3>\n<p>Lorsque vous installez un serveur d&rsquo;analyse de code, il est important de bien diff\u00e9rencier les diff\u00e9rents espaces en fonction de leur objet :<\/p>\n<ul>\n<li>L&rsquo;espace consacr\u00e9 aux diff\u00e9rents logiciels et leurs diff\u00e9rentes versions : Oracle, Java, Tomcat, Sonar, etc.<\/li>\n<li>L&rsquo;espace d\u00e9di\u00e9 \u00e0 la livraison et l&rsquo;installation du code source \u00e0 analyser.<\/li>\n<li>L&rsquo;espace d\u00e9di\u00e9 \u00e0 l&rsquo;impl\u00e9mentation des analyses : configuration, backups, customisations, cr\u00e9ation de rapports, extraction de donn\u00e9es, documentation de vos analyses (utile lorsque celles-ci se multiplient ou qu&rsquo;on doit revenir sur une analyse ancienne ou que notre serveur d&rsquo;analyse est utilis\u00e9 par diff\u00e9rents op\u00e9rateurs), etc.<\/li>\n<\/ul>\n<p>Sonar nous permet de sp\u00e9cifier cet espace dans le <strong>sonar-runner.bat<\/strong>, avec la variable <strong>PROJECT_HOME<\/strong>. Nous allons donc rechercher dans ce fichier la ligne suivante :<\/p>\n<p style=\"padding-left: 30px;\"><strong>set PROJECT_HOME=%CD%<\/strong><\/p>\n<p>et la modifier de fa\u00e7on \u00e0 indiquer un sous-r\u00e9pertoire <strong>\\Projets<\/strong> dans lequel nous placerons les fichiers de configuration de nos analyses. Dans la r\u00e9alit\u00e9, je ne localiserais pas cet espace sous le r\u00e9pertoire du Java Runner, c&rsquo;est uniquement \u00e0 titre de d\u00e9monstration.<\/p>\n<p>J&rsquo;ai modifi\u00e9 le fichier sonar-runner.bat pour ins\u00e9rer les 3 lignes suivantes :<\/p>\n<ul>\n<li>Afficher le r\u00e9pertoire du Java Runner <strong>SONAR_RUNNER_HOME:<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\"><strong>echo \u00ab\u00a0SONAR_RUNNER_HOME = %SONAR_RUNNER_HOME%\u00a0\u00bb<\/strong><\/p>\n<ul>\n<li>Sp\u00e9cifier le r\u00e9pertoire d&rsquo;analyse <strong>PROJECT_HOME<\/strong> dans un dossier <strong>\\Projets<\/strong> sous le r\u00e9pertoire pr\u00e9c\u00e9dent, et l&rsquo;afficher :<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\"><strong>set PROJECT_HOME=%SONAR_RUNNER_HOME%\\Projects<\/strong><br \/>\n<strong>echo \u00ab\u00a0PROJECT_HOME = %PROJECT_HOME%\u00a0\u00bb<\/strong><\/p>\n<h3><span style=\"text-decoration: underline;\">Configuration de notre premi\u00e8re analyse<\/span><\/h3>\n<p>Afin d&rsquo;effectuer une analyse, le Java Runner se base sur le fichier <strong>sonar-project.properties<\/strong> situ\u00e9 dans notre environnement d&rsquo;analyse. Notre objectif est d&rsquo;analyser quelques programmes Cobol localis\u00e9s dans un r\u00e9pertoire C:\\SRC\\Mainframe.<\/p>\n<p>Sans entrer dans le d\u00e9tail des param\u00e8tres pour une analyse de code mainframe, nous allons cr\u00e9er notre fichier <strong>sonar-project.properties<\/strong> avec les attributs suivants :<\/p>\n<ul>\n<li>Tout d&rsquo;abord, les donn\u00e9es obligatoires : un nom \/ une cl\u00e9 pour cette application, objet de notre premi\u00e8re analyse, ainsi qu&rsquo;un num\u00e9ro de version :<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\"># required metadata<br \/>\n<strong>sonar.projectKey=CBL_1<\/strong><br \/>\n<strong>sonar.projectName=Cobol 1st Analysis<\/strong><br \/>\n<strong>sonar.projectVersion=1.0<\/strong><\/p>\n<ul>\n<li>Et bien s\u00fbr, l&#8217;emplacement des fichiers \u00e0 analyser :<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\"><strong>sources=C:\/SRC\/Mainframe<\/strong><\/p>\n<ul>\n<li>Dernier param\u00e8tre : le langage de programmation qui d\u00e9cidera du parser Sonar pour analyser cette application :<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\">#The value of the property must be the key of the language.<br \/>\n<strong>sonar.language=cobol<\/strong><\/p>\n<h3><span style=\"text-decoration: underline;\">Ex\u00e9cution de notre premi\u00e8re analyse<\/span><\/h3>\n<p>Dans une fen\u00eatre de commande DOS, nous lan\u00e7ons le fichier <strong>sonar-runner.bat<\/strong> :<\/p>\n<ul>\n<li>Nous voyons bien s&rsquo;afficher les 2 variables d\u00e9signant le r\u00e9pertoire du Java Runner et de notre espace d&rsquo;analyse : <a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-490\" title=\"JavaRunnerDos1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos1.jpg\" alt=\"\" width=\"649\" height=\"152\" \/><\/a>Avec le r\u00e9pertoire localisant les fichiers source :<a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos21.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-493\" title=\"JavaRunnerDos2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos21.jpg\" alt=\"\" width=\"650\" height=\"51\" \/><\/a><\/li>\n<\/ul>\n<ul>\n<li>Et toute erreur d&rsquo;analyse \u00e9ventuellement rencontr\u00e9e (ici, une cha\u00eene de caract\u00e8res incorrecte) :<a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-495\" title=\"JavaRunnerDos3\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos3.jpg\" alt=\"\" width=\"650\" height=\"80\" \/><\/a><\/li>\n<li>Heureusement, une erreur de syntaxe dans le code Cobol ne va pas arr\u00eater Sonar, et notre analyse se termine bient\u00f4t avec le message : <a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-497\" title=\"JavaRunnerDos4\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/JavaRunnerDos4.jpg\" alt=\"\" width=\"649\" height=\"52\" \/><\/a><\/li>\n<\/ul>\n<p>Nous pouvons maintenant consulter le portail Sonar et voir s&rsquo;afficher les r\u00e9sultats de notre premi\u00e8re analyse : <a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/Sonar1stAnalysisResult1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-498\" title=\"Sonar1stAnalysisResult1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/Sonar1stAnalysisResult1.jpg\" alt=\"\" width=\"889\" height=\"200\" \/><\/a><\/p>\n<p>Nous avons donc pu mener \u00e0 bien notre premi\u00e8re analyse de la fa\u00e7on la plus simple qui soit, en configurant les quelques param\u00e8tres requis dans le fichier <strong>sonar-project.properties<\/strong>, sans n\u00e9cessit\u00e9 de g\u00e9rer des fichiers xml de Maven \u00e0 la syntaxe parfois longue et complexe.<\/p>\n<p>N\u00e9anmoins, la m\u00e9thode d\u00e9crite ici pr\u00e9sente deux inconv\u00e9nients :<\/p>\n<ul>\n<li>Le Java Runner travaille uniquement avec le fichier <strong>sonar-project.properties<\/strong>. Renommez celui-ci dans votre espace d&rsquo;analyse et le Java Runner ne pourra fonctionner correctement. Il faut donc modifier ce fichier chaque fois que l&rsquo;on effectuera une nouvelle analyse diff\u00e9rente de la pr\u00e9c\u00e9dente.<\/li>\n<li>Consulter les erreurs dans notre fen\u00eatre de commande DOS n&rsquo;est pas des plus convivial, surtout pour des analyses assez longues et\/ou rencontrant beaucoup d&rsquo;erreurs.<\/li>\n<\/ul>\n<p>Nous allons voir dans notre <a title=\"Jenkins - Installation\" href=\"http:\/\/qualilogy.com\/fr\/jenkins-installation\">prochain post<\/a> comment rem\u00e9dier \u00e0 cela, gr\u00e2ce \u00e0 notre ami Jenkins.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous avons vu pr\u00e9c\u00e9demment comment installer Sonar et le Java Runner. Celui-ci nous permet d&rsquo;effectuer des analyses sans passer par des outils tels que Maven ou Ant. Dans ce post, nous allons voir comment effectuer une premi\u00e8re analyse sur du code Mainframe-Cobol.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-119","post","type-post","status-publish","format-standard","hentry","category-sonar-installation"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/119"}],"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\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=119"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/119\/revisions"}],"predecessor-version":[{"id":120,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/119\/revisions\/120"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}