Comment exécuter un projet Maven dans Tomcat à partir d’Eclipse

Je dirige un projet maven multi-niveaux. Webapps est empaqueté en tant que WAR, qui dépend des composants empaquetés en tant que fichiers JAR

La plupart des modifications de code que je fais appartiennent à ces fichiers JAR.

Pour tester les modifications, je dois reconditionner le JAR et le WAR et déployer en externe dans tomcat.

J’ai essayé d’utiliser le plug-in sysdeo-tomcat-maven-eclipse, mais cela n’a pas fonctionné comme prévu.

S’il vous plaît aviser si quelqu’un a une solution à ce problème

Merci Gaurav

Utilisation du plugin d’intégration Maven Eclipse

Si vous rencontrez des problèmes, j’ai trouvé utile d’essayer l’outil de ligne de commande mvn pour le débogage. En règle générale, si la ligne de commande ne contient pas d’erreurs, vous pouvez l’exécuter dans Eclipse (mais tomcat a également des problèmes, vous devrez donc peut-être nettoyer le répertoire de travail et effacer les caches de temps en temps).

Autre que cela, je recommande vraiment d’utiliser le plugin d’intégration Maven Eclipse! J’utilise la version du plugin Sonatypes repo http://m2eclipse.sonatype.org/sites/m2e . Il y a une intégration plus récente sur le référentiel Eclipse, mais cela fonctionne différemment et je n’ai pas encore eu le temps d’étudier ses utilisations pour le moment.

Si votre projet est modulaire, il peut être utile de configurer le projet racine en tant que projet simple (pas de Java, pas de Java EE). Importez ensuite les sous-projets en tant que projets Java simples (là encore, pas de Java EE). Vous pouvez toujours activer la gestion des dépendances et exécuter les cibles de génération via le projet.

Modules d'importation

Il vous suffit de sélectionner les sous-modules requirejs par vos projets ciblés par dépendances.

Sélectionnez les dépendances à inclure en tant que sous-projets

Pour tout projet qui crée des fichiers de guerre, activez les facettes de java ee et configurez la racine de contexte sous d’ autres configurations disponibles (cela ne peut être fait qu’une seule fois, pourquoi l’option est manquante dans la capture d’écran).

Sélectionnez vos facettes décédées

Ensuite, configurez l’assemblage de déploiement pour vos projets à facettes. Tous les projets frères (actifs dans votre espace de travail) doivent être ajoutés à l’assembly de déploiement et vous devez également append l’ entrée du chemin de génération pour les dépendances Maven à l’assembly de déploiement. Une fois cette configuration effectuée, vous pouvez utiliser la directive Run on server pour démarrer vos applications Web.

Ensemble de déploiement d'installation

Je trouve utile de toujours restr en mode java pur lors du codage des projets Maven. N’importe quelle vue intelligente dans Eclipse ne fait qu’occulter ce qui se passe derrière la scène, vous avez access aux éditeurs spécifiques en activant de toute façon des projets à facettes!

J’utilise le plugin eclipse webtools et j’exécute mon Tomcat. Il a une méthode de republication qui publie également les fichiers JAR (sinon, il vous suffit de nettoyer le répertoire et de le republier).

Dans le fichier pom, vous devriez avoir les lignes suivantes pour que les webtools soient automatiquement supportés

 ...   maven-eclipse-plugin  1.5 ...   ...  ...  

Utilisation du plugin d’intégration Maven Eclipse et de Web Runner

Configurez un projet à facettes (déjà décrit dans une autre réponse), utilisez le dernier plug-in d’intégration Maven Eclipse. Cela devrait être situé sur le site de mise à jour de votre version eclipse en collaboration. Dans mon cas Indigo – http://download.eclipse.org/releases/indigo (/ Collaboration / Maven Integration for Eclipse).

Au lieu du serveur intégré qui échoue souvent lors de la mise à jour des dépendances de l’espace de travail dans l’assembly de déploiement (pour tomcat), je vous recommande d’utiliser le lanceur d’applications Web Sonatype, similaire à la directive maven: exécuter le plugin maven jetty. Vous pouvez trouver le plugin sur le site de mise à jour de sonatypes pour le plugin M2e Webby – http://m2eclipse.sonatype.org/sites/m2e-webby/ . Une fois ce plug-in installé, vous pouvez exécuter la configuration et exécuter l’application Web à partir d’une génération automatique située dans {project}/target/m2e-webby .

entrer la description de l'image ici

Je recommande de configurer l’un des conteneurs de jetons intégrés (par défaut) en tant que fournisseur de l’API servlet. Si des temps d’exécution spécifiques doivent être testés, un conteneur externe peut facilement être configuré en naviguant dans un répertoire de base du serveur et en sélectionnant le fournisseur approprié.

Les inconvénients que j’ai rencontrés sont assez mineurs:

  • Les applications Web doivent être arrêtées manuellement, il n’y a pas de “redémarrage”.
  • Chaque application Web doit s’exécuter sur un port distinct, mais ne partage pas d’instance de conteneur.

Vous obtenez “Impossible de lire le TLD” META-INF / c.tld “à partir du fichier JAR”: erreur: g / workspace / .metadata / .plugins avec la version actuelle du plugin m2eclipse avec la configuration ci-dessus.

Vous devez supprimer servlet-api.jar et jsp-api.jar du dossier de projets déployés lib / pour corriger l’erreur ci-dessus et configurer la configuration de génération personnalisée de sorte que les 2 fichiers ne soient pas copiés dans le répertoire de déploiement.