dimanche 27 février 2011

Intégrer Maven à WTP

Nous avons vu dans les billets précédents comment Eclipse facilitait l'intégration d'un projet Web.

La limite de ce type de projet est qu'il devient alors difficile d'utiliser des outils tierces de gestion de projets tels que Maven. Nous allons donc voir comment intégrer maven à Eclipse au sein d'un projet Web.

Installation de IAM

Le principal reproche fait à maven est son intégration au sein des IDE. Il est vrai que les plugins disponibles sont, encore aujourd'hui, loin d'être complètement fonctionnels. Lors des phases de développement où nous allons utiliser eclipse, seule la gestion des dépendances est vraiment indispensable, le packaging, la génération des sites, les tests peuvent être fait indépendamment de l'IDE dans la mesure où ils ne sont pas nécessairement lancés à chaque modification de codes (ces tâches peuvent être dévolues à une usine d'intégration continue).

Nous allons donc voir dans ce billet comment utiliser Maven dans un projet Web Eclipse pour nous affranchir de la gestion des dépendances.

En matière de plugins, j'utilise Eclipse IAM (Eclipse Integration for Apache Maven), bien que le plugin M2Eclipse soit aussi apparemment correct.

La première étape consiste donc à installer le plugin Eclipse IAM depuis le MarketPlace. L'installation ne pose aucun problème. Nous installerons tous les modules du plugins.


 
Une fois le plugin installé, nous disposons d'un nouveau type de projet : Maven 2 Project Creation Wizard.

La principal problème des plugins Maven est leur gestion des messages d'erreurs. Pour ma part, j'ai pris l'habitude de tester mon POM à partir d'une ligne de commande et une fois mon projet correctement compilé sous un maven classique, l'intégration sous eclipse ne pose pas de problème.

Création d'un projet Maven

La création d'un nouveau projet ne pose pas de problème particulier :

Choisissons un projet Maven:


Puis spécifions lui un nom, très classiquement :


Il nous reste encore à définir un archetype Maven, pour cela, nous allons chercher ceux contenant le mot webapp : maven-archetype-webapp


La dernière étape consiste à spécifier l'artifact et le group Id de notre projet :


En cliquant sur Finish, notre projet est créé, nous obtenons l'arborescence suivante :



Nous avons donc bien ici affaire à un projet maven classique avec les répertoires src/main et src/test.

Le fichier pom.xml est lui aussi très classique :

<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>MavenWebApplication</groupId>
  <artifactId>MavenWebApplication</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MavenWebApplication Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>MavenWebApplication</finalName>
  </build>
</project>


 Les librairies téléchargées par maven sont visibles dans la rubrique librairies du projet:


Intéressons-nous au fichier index.jsp présent dans le répertoire src/main/webapp :

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

Nous pouvons vérifier que notre programme fonctionne bien en ajoutant le projet à la liste des applications disponibles sur le serveur :


En lancant le serveur tomcat, la page est disponible à l'URL :  http://localhost:8080/MavenWebApplication/


Pour finir, il peut être utile de savoir où sont déployés les applications ajoutées au serveur d'application.

Pour cela, il faut se rendre dans le workspace et accéder au répertoire : .metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

Chaque application est recopiée dans un répertoire particulier


Aucun commentaire:

Enregistrer un commentaire