Tutoriel Maven N°10 : Génération de Rapports

////Tutoriel Maven N°10 : Génération de Rapports

Améliorez la productivité de vos équipes en générant des rapports. Analysez statiquement votre code source. Découvrez dans l’ordre les plugins maven les plus utilisés pour les rapports. Enfin, intégrez maven et Sonar.

Objectif

 Comprendre la généreration de rapports avec maven

 identifier quelques rapports standards

Prérequis

Tutoriel Maven N°1 : Installation Maven

Liens utiles

 Site de Maven : http://maven.apache.org/

 Plugin Checkstyle : http://maven.apache.org/plugins/maven-checkstyle-plugin/

 Sonar et tests integration avec JaCoCo

 Plugin Jacoco (exemple parametrage pom.xml)

 Rapports Tests unitaires Surefire (mvn surefire-report:report)

 Séparer tests unitaires & tests integration avec Profils Maven

Programme

 Rapport N°1 : documentation source (javadoc)

 Rapport N°2 : qualité code (checkstyle)

 Rapport N°3 : source croisé (jxr)

 Rapport N°4 : Identifier patterns d’erreur avec PMD / CPD

 Rapport N°5 : tests unitaites (surefire)

 Rapport N°6 : couverture de test (cobertura)

Durée

 45 min

PUBLICITE : votre formation ‘Intégration continue’ avec Objis

formation-integration-continue-usine-logicielle-objis-maillons

Partie 1 : générer la javadoc

 Ajoutez des commentaires au code (servlet) de votre projet Web mon appli-web

 Ajouter le code suivant dans le pom.xml monappli-web :
org.apache.maven.plugins
maven-site-plugin
3.4

org.apache.maven.plugins
maven-project-info-reports-plugin
2.2
org.apache.maven.plugins
maven-javadoc-plugin
2.7

 Puis lancez : mvn site

 Ouvrez ensuite avec un navigateur targetsiteindex.html

 Cliquez sur le lien Project Reports puis sur le lien JavaDocs

maven_rapport_javadocs.png

Partie 2 : Valider la qualité du code avec le plugin checkstyle

Démo Checkstyle ‘seul’

A partir du projet ANT suivant, découvrez la valeur ajoutée de l’outil Chekstyle :

democheckstyle-2

Intégration Checkstyle / Maven

 Ajoutez à la section reportPlugins du pom de monappli-web le plugin checkstyle:

... org.apache.maven.plugins
maven-checkstyle-plugin
2.6
...

 Lancez : mvn site

 Observez la section ‘Checkstyle’ ajoutée dans le rapport récupéré dans targetsiteindex.html

 Modifiez la couche web de façon à diminuer le nb d’erreur ?

 lien utile: Site de de l’outil CheckStyle : http://checkstyle.sourceforge.net/

 lien utile: Site du plugin Maven : http://maven.apache.org/plugins/maven-checkstyle-plugin/

maven_rapport_checkstyle.png

 Lien utile : Tutoriel Intégration de CheckStyle dans Eclipse

INFO : voici les mêmes erreurs vues par le développeur via plugin Checkstyle eclipse

Partie 3 : Rapport croisé de source

 Ajoutez à la section reportPlugins du pom de monappli-web le plugin jxr (avant celui de checkstyle, au dessus):

... org.apache.maven.plugins
maven-jxr-plugin
2.1
...

 Lien utile : http://maven.apache.org/plugins/maven-jxr-plugin

 Quelle est la valeur ajoutée de ce plugin ? En particulier, montrez sa complémentarité avec CheckStyle.

maven_rapport_checkstyle_jxr.png

 Désormais vous pouvez passer du rapport CheckStyle au code source en cliquant sur le numéro de ligne associé au commentaire CheckStyle.

maven_rapport_jxr.png

Partie 4 : Identifier patterns d’erreur avec PMD

Identifiez :

 Code mort (Ex : variables ou paramètres non utilisés)

 Duplication de code (Code copié/collé = possible bug copié/collé

 Code ‘compliqué’ (Ex : trop de if…else)

 Ajoutez à la section reportPlugins du pom de monappli-web le plugin PMD:

... org.apache.maven.plugins
maven-pmd-plugin
2.5
...

 Quels sont les deux nouveaux rapports générés ?

maven_rapport_pmd.png

 Qu’est ce que le rapport ‘CPD Report’ ?

 Qu’est ce que le rapport ‘PMD Report’ ?

Tests unitaire

Analysez le projet suivant Calculateur de taxes :

demotest

 lancez : mvn surefire-report:report

 lancez mvn site

Partie 4 : couverture de test

 A quel point les développeurs ont réalisé des tests unitaires ? Quels parties de l’application n’a pas été testée:

... org.codehaus.mojo
cobertura-maven-plugin
2.4
...

 Lien utile : http://mojo.codehaus.org/cobertura-maven-plugin/usage.html

Formation Git + Maven + Nexus + Jenkins + Sonar avec Objis

formation-integration-continue-usine-logicielle-objis-maillons

2018-02-01T06:43:32+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java