Java Web Dynamique de projet avec Maven et Eclipse
J'ai plusieurs questions sur la création d'une application Web Java avec Maven et Eclipse:
- Comment puis-je créer un projet web Java avec les servlets, jsp, et d'autres classes avec Maven?
- Il crée une simple structure de répertoire src->main->java. Où et comment puis-je mettre le dossier web-inf?
- Ai-je besoin d'ajouter de l'jdbc-pilotes manuellement le dossier à l'intérieur de la web-inf/lib, ou est-il ok juste pour souligner la dépendance?
- Est-il un moyen de tester les servlets avec junit?
- 2 approches ont été décrites ci-dessous que support web + Maven. La différence concernant la structure: (1) projet Maven avoir
maven-archetype-webapp
( Fichier > Nouveau > Projet Maven ) - utilisewebapp
soussrc/main/
(Maven style) (2) de Projet Web Dynamique converti à Projet Maven ( Fichier > Nouveau > Projet Web Dynamique ) - utiliseWebContent
(Eclipse style)
Vous devez vous connecter pour publier un commentaire.
Wow c'est beaucoup de questions à la fois. J'avoue que la création d'une webapp projet avec Maven et Eclipse peut être difficile, donc je vais essayer d'y répondre.
La création d'un projet d'application Web avec Maven
Lorsque vous créez un projet web Java, le produit final doit être une GUERRE ou d'un fichier EAR. La GUERRE et l'OREILLE fichiers sont des fichiers JAR avec une structure spécifique, qui peut être déployé dans un serveur d'applications ou de conteneur de servlet.
Comme mentionné précédemment, la meilleure façon de mettre en place un projet Maven pour les applications web est d'utiliser des archétypes:
Si nous créer un projet avec cet archétype d'une simple structure de répertoire et pom.xml sont générés. Ce projet suit la norme Maven annuaire de mise en page que vous mentionnez, avec
/src/main/java/
,/src/test/java
, etc. Maven génère le fichier WAR à partir de cette structure avec la guerre:la guerre de l'objectif.Noter que cet archétype est très simple (à jour) de l'application web, mais c'est le meilleur point de départ disponible. Vous voulez probablement jeter l'web.xml fichier et créez-en un qui prend en charge Servlet 3.0.
WEB-INF emplacement
Par défaut, Maven s'attend à des ressources qui devraient aller à la racine de la GUERRE de fichiers, tels que des images, des pages html et le répertoire WEB-INF -- à résider dans
/src/main/webapp/
. De sorte que le dossier WEB-INF doit être situé à/src/main/webapp/WEB-INF/
. Si vous utilisez maven-archetype-webapp ce répertoire est automatiquement créé, avec un échantillon web.xml fichier.Intégration Eclipse
Vous avez mentionné Éclipse dans la question du titre, et il est en effet possible de développer Mavenized applications web dans Eclipse avec le plugin m2eclipse. Eclipse a un bon soutien pour les applications Web avec WTP (Web Tools Platform).
Bien que de nombreux guides sur l'internet (à tort) le recommander, vous ne devez pas utiliser le mvn eclipse:eclipse de commande pour créer le projet Eclipse. Ce plugin ne peut que générer de la volonté à payer des projets pour les très vieilles versions d'Eclipse (WTP 2.0 est le maximum). Au lieu de cela, utiliser le plugin m2eclipse comme décrit ici.
Dépendances
Il n'est pas nécessaire de le faire manuellement, puisque l'un des principaux points forts de Maven est la gestion des dépendances. Si vous ajoutez une dépendance dans le pom.xml avec une portée de compiler ou runtime, le fichier JAR sera automatiquement inclus dans le
WEB-INF/lib/
répertoire de la GUERRE de fichier. Par exemple, pour ajouter le pilote JDBC Postgresql dépendance, ajoutez ceci à votre pom.xml:Étant donné que la portée n'est pas spécifié Maven supposerons qu'il est dans la portée par défaut compiler. Le résultat est que Maven comprendra
WEB-INF/lib/postgresql-9.1-901.jdbc4.jar
dans le fichier WAR.Tests
Cette question a été posée (et réponse) sur Stackoverflow:
Références
Vous devez créer un projet basé sur la webapp archétype Maven, pas celui par défaut que vous utilisez.
Je suis l'aide de SpringSource Tool Suite, qui, pour cet exercice, est la même que Eclipse avec m2e. Créer un nouveau projet Maven et assurez-vous que vous sélectionnez les options suivantes archétype:
Le Maven en ligne de commande de façon de le faire est:
Cet archétype va mettre le dossier WEB-INF dans l'emplacement correct (src/main/webapp).
Vous pouvez trouver plus d'informations à http://maven.apache.org/guides/mini/guide-webapp.html
Il suffit de créer une normal "Dynamic Web Project". Ensuite, cliquez-droit sur le nom du projet et sélectionnez Configure > Convertir en Projet Maven. Il peut prendre jusqu'à une minute pour terminer la conversion, il faut donc être patient. Voir l'article suivant:
http://aykutakin.wordpress.com/2013/12/04/create-eclipse-dynamic-web-project-with-maven-2/
Si cela ne fonctionne pas, essayez ceci:
http://crunchify.com/how-to-create-dynamic-web-project-using-maven-in-eclipse/
mvn archetype:generate-DgroupId=com.helloworld -DartifactId=HelloWorldDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
DarchetypeArtifactId=maven-archetype-webapp permettra de créer un maven projet web.
mvn eclipse:eclipse -Dwtpversion=2.0
pour faire de votre projet un projet web dynamique pour eclipse, maintenant importer ce projet nouvellement créé comme un "Ëxisting projet"Utilisation plugin m2eclipse de eclipse pour permettre aux MAVEN dans eclipe.
Web.xml sera à \src\main\webapp\WEB-INF