vendredi 2 mai 2014

Créer un projet Java mavenisé avec Eclipse

Après avoir configuré Maven dans Eclipse, nous allons voir comment créer et configurer un premier projet Maven au sein de l'IDE Eclipse. Pour faire original, il va s'appeler "Hello World !" !!
Les grandes lignes de cet article :
  • Créer un projet Java Maven simple
  • Configurer l'environnement d'exécution
  • Ajouter une dépendance


Créer le projet

Pour cela, sélectionnez "File" / "New" / "Maven project". Vous obtenez l'écran suivant :

Nouveau projet Maven
Cochez la case "Create a simple project" : ainsi, par défaut, vous allez créer un projet Java classique. Puis cliquez sur "Next ...".

Informations du projet
Pour chaque projet (Artifact), vous devez renseigner les informations suivantes :
  • Group Id : le groupe du projet. Très souvent, le nom du groupe est sous la forme <pays>.<entreprise>. Par exemple : fr.mycompany
  • Artifact Id : le nom du projet
  • Version : la version du projet
  • Packaging : indique sous quelle forme le projet peut être packagé pour être utilisé par d'autres projets (jar packaging) ou être déployés au sein d'un serveur d'application (war packaging). Dans le cas d'un projet simple, sélectionnez la valeur "jar".
  • Name : le libellé du projet
  • Description : la description du projet
Et voici le projet avec toutes les informations renseignées :

Projet "HelloWorld"
Cliquez sur "Finish". Le projet est créé.

Arborescence d'un projet

Le projet créé doit ressembler à l'écran suivant :

Arborescence du projet "HelloWorld"
Conformément à la philosophie Maven, le projet contient les dossiers source suivants :
  • src/main/java : les fichiers java de l'application
  • src/main/resources : les fichiers non java de l'application (xml, ...)
  • src/test/java : les fichiers java de test
  • src/test/resources : les fichiers non java de test
Le projet fait référence à deux librairies :
  • La librairie JRE 1.5 : l'environnement d'exécution
  • Les dépendances (Maven) utilisées par le projet et qui sont déclarées dans le fichier "pom.xml". Par défaut, aucune dépendance n'est présente. 

Configurer l'environnement d'exécution

Dans un précédent article, nous avions spécifié au niveau du workspace, que les projets utiliseraient Java 1.7. Or, Maven a configuré le projet en utilisant Java 1.5, car le plugin ne tient pas compte de la configuration du workspace.
Il est possible de modifier l'environnement d'exécution via les propriétés du projet. Mais le problème est que cette modification ne serait pas répercutée sur le projet Maven. Pour que les configurations Maven et Eclipse du projet soient synchronisées, il faut ajouter les informations de compilation (la version Java 1.7 dans notre exemple) dans le fichier "pom.xml" du projet :
<build>
  [...]
  <plugins>
    <plugin>
      <groupid>org.apache.maven.plugins</groupid>
      <artifactid>maven-compiler-plugin</artifactid>
      <version>3.1</version>
      <configuration>
        <source>1.7</source>
        <target>1.7</target>
      </configuration>
    </plugin>
  </plugins>
  [...]
</build>
Une fois le fichier enregistré, Eclipse indique une erreur sur le projet :

Erreur Maven
L'erreur est due au fait que la configuration Eclipse du projet n'est plus synchronisée par rapport à celle de Maven. Pour corriger l'erreur, faites un clic droit sur le projet puis "Maven" / "Update project". L'écran suivant apparaît :

Mise à jour de la configuration
Cliquez sur "Ok" : l'environnement d'exécution est mis à jour, comme l'indique l'écran ci-dessous :

Environnement d'exécution : JavaSE-1.7

Ajouter une dépendance

Dans cet exemple, nous allons utiliser la librairie commons-lang d'Apache. Cette librairie est disponible dans le repository central de Maven, comme on peut le voir sur l'écran ci-dessous :

Liste des versions disponibles de commons-lang
Nous allons utiliser la version 3.3.2 de commons-lang3. Pour cela, faites un clic droit sur le projet, puis "Maven" / "Add dependency". Dans la zone de saisie "Enter groupId, artifactId, ...", tapez "commons-lang3". La liste des librairies s'affiche :

Chercher une dépendance
Puis, choisissez la version "3.3.2 [jar]" de "org.apache.commons"/"commons-lang3", et cliquez sur "Ok". Cette dépendance est ainsi téléchargée et ajoutée au projet dans le fichier "pom.xml".

La librairie est ajoutée au projet

La librairie est déclarée dans le fichier "pom.xml"

Créer la classe "HelloWorld"

HelloWorld

Pour cela, créez la classe "HelloWorld" dans le package "fr.brunoc" par exemple. Puis, déclarez une méthode "main" dans laquelle vous ajoutez le code suivant :

Utilisation de la classe StringUtils présente dans commons-lang3
Vous constatez donc que vous pouvez utiliser n'importe quelle classe (publique bien sûr !) des librairies ajoutées au projet.

Code source des dépendances

Si vous faites "F3" sur la classe "StringUtils", vous obtenez le byte code de cette classe, et non pas le code source java. Pour voir le code source, faites un clic droit sur la dépendance "commons-lang3-3.3.2.jar" dans l'arborescence du projet, puis "Maven" / "Download sources". Ainsi, un fichier jar contenant les sources est téléchargé dans le repository local. Si vous refaites à nouveau "F3" sur la classe "StringUtils", le code source de la classe s'affiche :

Le code source de la classe "StringUtils"
Pour éviter d'avoir à chaque fois à télécharger manuellement le code source des librairies utilisées dans vos projets, vous pouvez activer automatiquement le téléchargement du code source et de la documentation javadoc (à condition bien sûr qu'elle soit présente dans le repository distant) dès que vous ajoutez une dépendance à votre projet. Pour cela, allez dans "Windows" / "Préférences" / "Maven", puis cochez les cases "Download Artifact Sources" et "Download Artifact JavaDoc" :

Téléchargement automatique code source/JavaDoc
Bonne route !

Aucun commentaire:

Enregistrer un commentaire