II. Chapitre 1 - Préparatifs▲
II-A. Création de la structure Maven▲
Première chose à faire, créer la structure Maven2 avec la ligne de commande suivante :
mvn archetype:create -DgroupId
=
com.developpez.mynotes -DartifactId
=
mynotes
Dans un premier temps le module aura les dépendances externes suivantes :
- ibatis (persistance)
- commons-dbcp (pool de connexion)
- hsqldb (Base de données embarquée + driver de connexion)
- DBUnit pour les Tests unitaires des DAO
- JUnit 4
<dependencies>
<!-- Persistence Layer -->
<dependency>
<groupId>
org.apache.ibatis</groupId>
<artifactId>
ibatis</artifactId>
<version>
2.3.3.720</version>
</dependency>
<dependency>
<groupId>
commons-dbcp</groupId>
<artifactId>
commons-dbcp</artifactId>
<version>
1.2.2</version>
</dependency>
<!-- Tests -->
<dependency>
<groupId>
org.dbunit</groupId>
<artifactId>
dbunit</artifactId>
<version>
2.2.3</version>
<scope>
test</scope>
</dependency>
<!-- Database for testing -->
<dependency>
<groupId>
hsqldb</groupId>
<artifactId>
hsqldb</artifactId>
<version>
1.8.0.7</version>
</dependency>
<dependency>
<groupId>
log4j</groupId>
<artifactId>
log4j</artifactId>
<version>
1.2.14</version>
</dependency>
<dependency>
<groupId>
junit</groupId>
<artifactId>
junit</artifactId>
<version>
4.4</version>
<scope>
test</scope>
</dependency>
</dependencies>
Remarque : iBatis n'est pas déployé par défaut sur les dépôts publics Maven. Ainsi il faut télécharger la version 2.2.3 sur leur site Internet et déployer à la main dans son dépôt local.
Ensuite nous allons configurer le build en indiquant les répertoires de ressources (tout fichier non java) de l'application et de ses tests :
<resources>
<resource>
<directory>
src/main/resources</directory>
</resource>
<resource>
<directory>
src/main/resources-filtered</directory>
<filtering>
true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>
src/test/resources</directory>
</testResource>
<testResource>
<directory>
src/test/resources-filtered</directory>
<filtering>
true</filtering>
</testResource>
</testResources>
Dans la balise <plugins/> de <build> nous allons utiliser le plugin maven-compiler-plugin pour pouvoir forcer la version du jdk :
<plugin>
<groupId>
org.apache.maven.plugins</groupId>
<artifactId>
maven-compiler-plugin</artifactId>
<configuration>
<source>
1.5</source>
<target>
1.5</target>
</configuration>
</plugin>
Pour intégrer le projet dans l'IDE Eclipse ou IDEA, il faut déclarer les plugins suivants :
<plugin>
<groupId>
org.apache.maven.plugins</groupId>
<artifactId>
maven-idea-plugin</artifactId>
<version>
2.2</version>
<configuration>
<downloadSources>
true</downloadSources>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins</groupId>
<artifactId>
maven-eclipse-plugin</artifactId>
<version>
2.5.1</version>
<configuration>
<downloadSources>
true</downloadSources>
</configuration>
</plugin>
Enfin, pour des besoins de métriques de qualité nous allons ajouter maven-cobertura-plugin qui lancera un rapport de couverture de test lors du lancement du goal mvn site :
<reporting>
<plugins>
<plugin>
<groupId>
org.codehaus.mojo</groupId>
<artifactId>
cobertura-maven-plugin</artifactId>
</plugin>
</plugins>
</reporting>
II-B. Génération du projet sous l'IDE▲
Générons le projet suivant l'IDE utilisé :
- IDEA : mvn idea:idea
- Eclipse : mvn eclipse:eclipse
Normalement, nous devrions avoir la structure du projet suivant :
II-C. Création du script DDL de la base de données▲
DROP
TABLE
UTILISATEUR IF
EXISTS
;
CREATE
TABLE
UTILISATEUR (
USER_ID VARCHAR
(
20
)
NOT
NULL
,
FIRST_NAME VARCHAR
(
50
)
NOT
NULL
,
LAST_NAME VARCHAR
(
50
)
NOT
NULL
,
PASSWORD
VARCHAR
(
30
)
NOT
NULL
,
EMAIL VARCHAR
(
50
)
NOT
NULL
,
IS_ADMIN BOOLEAN
NOT
NULL
,
PRIMARY
KEY
(
USER_ID)
)
;