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. Avantages
10.1.1. Inconvénients
10.2. Dans target/<final-name> : war:exploded


10. Integration avec Tomcat

Par défaut Maven gère les fichiers sources dans le répertoire src et les fichiers compilé dans le répertoire target. Et ce, même si la compilation ne fournis 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 compilatation 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é aux developpeurs. Malheureusement certaines limitations la rende innutilisable dans certains cas.


10.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 intantanément.


10.1.1. Inconvénients

  • En ne passant plus par Maven pour la compilation, on perd beaucoup des fonctionnalitées de Maven. Par exemple, il n'est pas possible d'utiliser le filtrage de resource. 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 certain projet, il y a un mécanisme de dépendance entre application Web. Cela permet de récupperer 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 commit des sources du projet, il faut faire particulièrement attention à ne pas commité les fichier hérité dans le projet au risque desurcharger les fichiers et ne perdre la dépendance.
  • Si le projet et modulaire (voir plus bas) aucun répertoire ne pourra servir de base à Tomcat, le fonctionnement est donc impossible.

10.2. Dans target/<final-name> : 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. L'avantage est que l'on reste entièrement dans le cadre de Maven, pas d'entorses au concept : src 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...

L'inconvénient est qu'il faut passer par Maven pour toutes modification des fichiers. 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.