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


10. Integration avec Tomcat
10.1. Dans src/main/webapp : war:inplace
10.1.1. Avantages
10.1.2. Inconvénients
10.2. Dans target/<finalName> : war:exploded
10.2.1.
10.2.2.


10. Integration avec Tomcat

Par défaut Maven gère les fichiers sources dans le répertoire src et les fichiers compilés dans le répertoire target. Et ce, même si la compilation ne fournit pas d'autre valeur ajoutée que la recopie du fichier.

La question du fonctionnement avec le développement sous Tomcat se pose alors. On a l'habitude de pouvoir modifier directement les fichiers utilisés par Tomcat ce qui permet de ne pas le redémarrer pour tester les modifications (du moins pour les fichiers statiques).

On démarre toujours Tomcat dans un répertoire webapp racine. La question est alors de savoir si on démarre tomcat dans le répertoire src/main/webapp ou target/<final-name>.


10.1. Dans src/main/webapp : war:inplace

Cela va un peu à l'encontre des grands principes de Maven. Si on démarre Tomcat dans le répertoire src, cela veut dire qu'il faudra ajouter dans src/main/webapp/WEB-INF/classes les fichiers compilés et dans src/main/webapp/WEB-INF/lib les dépendances.

La commande war:inplace réalisera cette opération automatiquement. En configurant Eclipse pour positionner sa sortie de compilation dans le répertoire src/main/webapp/WEB-INF/classes, tout fonctionnera correctement.

Cette solution est à privilégier dès qu'elle est possible car elle apporte les meilleurs possibilités aux développeurs. Malheureusement certaines limitations la rende innutilisable dans certains cas.


10.1.1. Avantages

C'est une solution très pratique car après une initialisation par la commande war:inplace, il est possible de développer avec Tomcat sans utiliser Maven et en profitant de toutes les modifications dans Tomcat instantanément.


10.1.2. Inconvénients

  • En ne passant plus par Maven pour la compilation, on perd beaucoup des fonctionnalités de Maven. Par exemple, il n'est pas possible d'utiliser le filtrage de ressources. Comme Eclipse ne le gère pas, les fichiers qui seront copiés dans src/main/webapp/WEB-INF/classes ne seront pas filtrés.
  • Dans certains projets, il y a un mécanisme de dépendance entre applications Web. Cela permet de récuperer dans la webapp des fichiers d'une dépendance. Dans ce cas, le goal war:inplace va recopier les dépendances dans le répertoire src/main/webapp. Pour gérer les commits des sources du projet, il faut faire particulièrement attention à ne pas commiter les fichiers hérités dans le projet au risque de surcharger les fichiers et de perdre la dépendance.
  • Si le projet est modulaire (voir plus bas) aucun répertoire ne pourra servir de base à Tomcat, le fonctionnement est donc impossible.

10.2. Dans target/<finalName> : war:exploded

La propriété final name dans maven correspond au nom du package à utiliser. Il se configure comme ceci :
Configuration du nom de packet

	<build>
		<final-name>package-name</final-name>
		...
	</build>
				
La commande war:exploded va créer un répertoire target/<final-name> qui contiendra le war de l'application sans réaliser l'archive.

En configurant Tomcat pour démarrer dans ce répertoire, il utilisera les fichiers compilés par Maven.


10.2.1.

On reste entièrement dans le cadre de Maven, pas d'entorse au concept : sources d'un côté, fichiers compilés de l'autre. On profite de tous les mécanismes de Maven : filtrage, projets modulaire, dépendances des fichiers de la webapp...


10.2.2.

Il faut passer par Maven pour toutes modifications de fichier. Cette opération peut être fastidieuse.

 

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.