C306 Compilation Assistée Avec Maven
C306 Compilation Assistée Avec Maven
C306 Compilation Assistée Avec Maven
id=41415
1 - Principe
Pour simplifier la gestion des dépendances et l'exécution des différents tâches (compilation, exécution des tests, instrumentation, ...) il existe
des outils tels que Maven, Gradle, ...
Ce qui évite toutes les tâches fastidieuses faites dans les parties précédentes (récupération des outils, écriture des commandes) mais qui
étaient utile pour bien comprendre ce qui se passe.
Maven utilise un fichier xml (pom.xml) pour décrire le projet et où sont indiquées les différentes tâches à réaliser. Ce fichier doit être à la
racine de l'arborescence du projet
./pom.xml ?
./src
./src/test
./src/test/java
./src/test/java/MathToolsTests.java
./src/main
./src/main/java
./src/main/java/RandomTab.java
./src/main/java/MathTools.java
96
97 <plugin><!-- pour avoir le rapport checkstyle -->
98 <groupid>org.apache.maven.plugins</groupid>
99 <artifactid>maven-checkstyle-plugin</artifactid>
100 <version>3.0.0</version>
101 <reportsets>
102 <reportset>
103 <reports>
104 <report>checkstyle</report>
105 </reports>
106 </reportset>
107 </reportsets>
108 </plugin>
109
110 <plugin><!-- pour avoir le lien au code source dans les rapports -->
111 <groupid>org.apache.maven.plugins</groupid>
112 <artifactid>maven-jxr-plugin</artifactid>
113 <version>2.3</version>
114 </plugin>
115
116 <plugin><!-- pour la verification du code avec PMD -->
117 <groupid>org.apache.maven.plugins</groupid>
118 <artifactid>maven-pmd-plugin</artifactid>
119 <version>3.12.0</version>
120 </plugin>
121
122 <plugin><!-- pour avoir le rapport surfire (execution des tests) -->
123 <groupid>org.apache.maven.plugins</groupid>
124 <artifactid>maven-surefire-report-plugin</artifactid>
125 <version>3.0.0-M3</version>
126 </plugin>
127
128 </plugins>
129 </reporting>
130
131 <properties>
132 <!-- encodage du code source -->
133 <project.build.sourceencoding>UTF-8</project.build.sourceencoding>
134 </properties>
135
136 </project>
Vous pouvez utiliser ce fichier pour gérer vos projets/devoirs/exercices, il devrait convenir tel quel (adapter la première partie décrivant le nom
du projet, la version, ...)
L'utilisation est très simple et a le très gros avantage de gérer automatiquement les dépendances :
• pour compiler:
...
INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.786s
[INFO] Finished at: Wed Jul 03 11:47:44 CEST 2013
[INFO] Final Memory: 8M/109M
• tout ce qui est généré par maven est mis dans le dossier "target"
• pour compiler les tests:
• pour générer le rapport sonarqube en communiquant avec votre serveur sonar installé avec les paramètres par défaut:
>mvn sonar:sonar ?
5 - Exercice
Corriger le projet ci-dessus pour que
• les tests unitaires passent
• la couverture de code soit complète
• il n'y ai plus d'erreurs signalées par checkstyle
• il n'y ai plus d'erreurs signalées par PMD
6 - Conclusion
On a ici grandement facilité la gestion des dépendances et l'exécution des différentes tâches (compilation, tests, génération des rapports). Les
seuls fichiers utile sont ceux de l'arborescence décrite, rien qui ne serait constructible ou récupérable automatiquement.
Aller à…
Utilisation de Git - TP ►
ı Français (fr)
ı
English (en)
ı Français (fr)
Résumé de conservation de données
Obtenir l'app mobile