| Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide Consultez : | ![]() |
Une fois que vous avez compilé, testé et packagé votre
application, vous allez vouloir la déployer dans un conteneur de
Servlet et tester la page index.jsp qui a été créée par le
plugin Maven Archetype. Normalement, cela implique de télécharger un serveur
comme Jetty ou Apache Tomcat, décompresser la distribution, copier
votre fichier WAR dans un répertoire
webapps/ et ensuite démarrer le conteneur. Bien que
vous puissiez procéder ainsi, ce n'est pas nécessaire. À la place, vous
pouvez utiliser le plugin Maven Jetty pour exécuter votre application web
avec Maven. Pour ce faire, vous allez devoir configurer le plugin Maven
Jetty dans le fichier pom.xml de votre projet. Ajoutez
l'élément plugin à votre configuration de build comme
le montre l'exemple ci-dessous :
Exemple 5.3. Configurer le plugin Jetty
<project>
[...]
<build>
<finalName>simple-webapp</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
[...]
</project>
Une fois que vous avez configuré le plugin Maven Jetty dans le
pom.xml de votre projet, vous pouvez invoquer son
goal run pour démarrer votre application web dans le
conteneur de Servlet Jetty. Exécutez la commande mvn jetty:run à
partir du répertoire du projet simple-webapp/ de la manière suivante :
~/examples/ch-simple-web/simple-webapp $ mvn jetty:run
...
[INFO] [jetty:run]
[INFO] Configuring Jetty for project: simple-webapp Maven Webapp
[INFO] Webapp source directory = \
~/svnw/sonatype/examples/ch-simple-web/simple-webapp/src/main/webapp
[INFO] web.xml file = \
~/svnw/sonatype/examples/ch-simple-web/\
simple-webapp/src/main/webapp/WEB-INF/web.xml
[INFO] Classes = ~/svnw/sonatype/examples/ch-simple-web/\
simple-webapp/target/classes
2007-11-17 22:11:50.532::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
[INFO] Context path = /simple-webapp
[INFO] Tmp directory = determined at runtime
[INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
[INFO] Webapp directory = \
~/svnw/sonatype/examples/ch-simple-web/simple-webapp/src/main/webapp
[INFO] Starting jetty 6.1.6rc1 ...
2007-11-17 22:11:50.673::INFO: jetty-6.1.6rc1
2007-11-17 22:11:50.846::INFO: No Transaction manager found
2007-11-17 22:11:51.057::INFO: Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
Si vous utilisez le plugin Maven Jetty à partir d'un environnement Windows,
vous devrez probablement déplacer votre dépôt local dans un répertoire qui ne contient pas d'espaces.
Des lecteurs nous ont remonté des problèmes lors du démarrage de Jetty car leur
dépôt local était stocké dans le répertoire "C:\Documents and Settings\<user>".
La solution pour régler ce problème est de déplacer votre dépôt local Maven dans un répertoire
qui ne contient pas d'espaces et de redéfinir son emplacement dans le fichier ~/.m2/settings.xml
comme décrit dans la Section A.2.1, « Valeurs simples ».
Une fois que Maven a démarré le conteneur de servlet Jetty, ouvrez
l'URL http://localhost:8080/simple-webapp/
dans un navigateur web. La page index.jsp
générée par l'Archetype est triviale ; elle contient un titre de second
niveau avec le texte "Hello World!". Maven s'attend à ce que la racine du site
web soit dans src/main/webapp. C'est dans ce
répertoire que vous trouverez le fichier index.jsp
utilisé dans l'Exemple 5.4, « Contenu de src/main/webapp/index.jsp ».
Exemple 5.4. Contenu de src/main/webapp/index.jsp
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
Dans src/main/webapp/WEB-INF, nous allons
trouver le plus petit descripteur d'application
web.xml imaginable, présenté dans l'exemple suivant
:
Exemple 5.5. Contenu de src/main/webapp/WEB-INF/web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> </web-app>