IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 :

	mvn site
			
(ou)

	mvn site:site
			
Le site est alors généré dans le respertoire target/site. Une fois habitué à ce genre de site, vous reconnaitrez plusieurs sites officiels de grands frameworks générés 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ée pour être lancé à chaque build afin de pouvoir suivre les rapports au fur et à mesure.


11.1. Structure

info Les bases de la gestion du site Maven sont décrites ici.
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 gérer 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 positionnés 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 rapports en plus de goals. Certains plugins ne proposent d'ailleurs que des rapports. A la génération du site, Maven exécutera 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 courants proposant des rapports sont les suivants :

idea 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] ------------------------------------------------------------------------
			
 

Valid XHTML 1.1!Valid CSS!

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.