Utiliser Maven 2
Date de publication : 04/08/2008 , Date de mise à jour : 04/08/2008
11. Configuration du site
11.1. Structure
11.2. Contenu
11.3. Rapports
11. Configuration du site
Maven propose de générer un site présentant le projet. Toujours fidèle à ses
principes, Maven pourra générer un site minimal même sans disposer de configuration
spécifique. Le commande à utiliser est la suivante :
(ou)
Le site est alors générer dans le respertoire target/site. Une fois habituer à ce
genre de site, vous reconnaitrait plusieurs sites officiels de grands frameworks
générer par ce moyen :
Tapestry
,
Struts
,
EhCache
ou bien sur
Maven
lui même.
Un des gros atouts de cette fonctionnalité est de permettre la regénération
automatique et fréquente du site présentant la documentation ainsi que les rapports
du type JavaDoc ou tests unitaires. Le plus souvent, avec l'utilisation de systèmes
d'intégration continue, la génération du site est configuré pour être lancé à chaque
build afin de pouvoir suivre les rapports au fur et à mesure.
11.1. Structure
Par défaut, Maven va créer quelques pages présentant les informations présente
dans le pom (si elles y sont) comme la description générale, la gestion des
sources ou l'outil de ticketing...
Les fichiers pour le site seront à déposer dans le répertoire src/site prévu à
cet effet. On l'organisera alors ainsi :
Structure des fichiers à créer pour le site |
+- src/
+- site/
+- apt/
| +- index.apt
|
+- xdoc/
| +- other.xml
|
+- fml/
| +- general.fml
| +- faq.fml
|
+- site.xml
|
Le fichier site.xml permet de gerer la structure du site et principalement le
menu, se référer à la documentation pour la syntaxe.
Il y a ensuite deux fonctionnalités principales pour enrichir le contenu du site
: rajouter du contenu, et rajouter des rapports.
11.2. Contenu
Il est possible de rajouter des pages de contenu dans plusieurs format
différents :
Les fichiers pour chaque format doivent être positionner dans le répertoire
correspondant. Dans le site généré, une page ecrite au format apt dans le
fichier src/site/apt/toto/toto.apt sera généré dans target/site/toto/toto.html
et c'est ainsi pour tous les types de fichiers.
11.3. Rapports
Certains plugins Maven proposent des rapport en plus de goals. Certains plugins
ne proposent d'ailleur que des rapports. A la génération du site, Maven
executera tous les rapports configurés pour les calculer.
Pour ajouter un rapport dans le site Maven, il faut rajouter dans le pom une
configuration de ce type :
Configuration d'un rapport dans le pom |
< reporting >
< plugins >
...
< plugin >
< groupId > org.apache.maven.plugins< / groupId >
< artifactId > maven-project-info-reports-plugin< / artifactId >
< version > 2.0.1< / version >
< / plugin >
...
< / plugins >
< / reporting >
|
En fait, le site par défaut contient justement le rapport du plugin
maven-project-info-reports-plugin
Les plugins les plus courant proposant des rapports sont les suivants :
-
changelog
: Génère la liste des changements récent du gestionnaire de source
-
changes
: Génère le rapport du système de ticketing du projet
-
checkstyle
: Génère le rapport de checkstyle
-
javadoc
: Génère la JavaDoc du projet
-
pmd
: Génère le rapport PMD
-
project-info-reports
: Génère les rapports standards Maven
-
surefire-report
: Génère le rapport des résultats des tests unitaires
|
Pour générer un site qui propose quelques informations, nous allons enrichir le
pom.xml avec une petite description et l'activation du rapport Javadoc.
Après la commande
mvn site
, le site sera disponible dans
target/site/index.html
|
pom.xml permettant de générer un site avec la JavaDoc |
< project xmlns = " http://maven.apache.org/POM/4.0.0 "
xmlns : xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi : schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd " >
< modelVersion > 4.0.0< / modelVersion >
< groupId > com.developpez< / groupId >
< artifactId > cours-maven-example< / artifactId >
< packaging > jar< / packaging >
< name > Projet d'exemple pour le cours Maven< / name >
< description > Projet de démonstration des fonctionnalités de Maven< / description >
< version > 1.0< / version >
< dependencies >
< dependency >
< groupId > log4j< / groupId >
< artifactId > log4j< / artifactId >
< version > 1.2.13< / version >
< / dependency >
< / dependencies >
< build >
< resources >
< resource >
< directory > src/main/resources< / directory >
< filtering > true< / filtering >
< / resource >
< / resources >
< filters >
< filter > src/main/filters/${env}.properties< / filter >
< / filters >
< plugins >
< plugin >
< groupId > org.apache.maven.plugins< / groupId >
< artifactId > maven-compiler-plugin< / artifactId >
< version > 2.0.2< / version >
< configuration >
< source > 1.5< / source >
< target > 1.5< / target >
< / configuration >
< / plugin >
< / plugins >
< / build >
< reporting >
< plugins >
< plugin >
< groupId > org.apache.maven.plugins< / groupId >
< artifactId > maven-javadoc-plugin< / artifactId >
< / plugin >
< / plugins >
< / reporting >
< properties >
< env > LOCAL< / env >
< / properties >
< / project >
|
Génération du site |
~/cours-maven-example$ mvn site
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Projet d'exemple pour le cours Maven
[INFO] task-segment: [site]
[INFO] ------------------------------------------------------------------------
...
[INFO] ------------------------------------------------------------------------
[INFO] Building Projet d'exemple pour le cours Maven
[INFO] ------------------------------------------------------------------------
[INFO] No goals needed for project - skipping
[INFO] Preparing javadoc:test-javadoc
[INFO] ------------------------------------------------------------------------
[INFO] Building Projet d'exemple pour le cours Maven
[INFO] ------------------------------------------------------------------------
[INFO] No goals needed for project - skipping
[INFO] [site:site]
[WARNING] No URL defined for the project - decoration links will not be resolved
[INFO] Generating "JavaDocs" report.
...
[INFO] Generating "Continuous Integration" report.
[INFO] Generating "Dependencies" report.
[INFO] Generating "Issue Tracking" report.
[INFO] Generating "Project License" report.
[INFO] Generating "Mailing Lists" report.
[INFO] Generating "About" report.
[INFO] Generating "Project Summary" report.
[INFO] Generating "Source Repository" report.
[INFO] Generating "Project Team" report.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19 seconds
[INFO] Finished at: Tue Aug 12 16:45:38 CEST 2008
[INFO] Final Memory: 18M/35M
[INFO] ------------------------------------------------------------------------
|
Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à
votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre
intellectuelle protégée par les droits d'auteurs. Copyright Matthieu Lux . Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu
: textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous
encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets.