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=mynotesDans 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)
) ;



