web-dev-qa-db-fra.com

Comment exécuter un projet Maven dans Tomcat depuis Eclipse

Je dirige un projet maven à plusieurs niveaux. Il a des webapps emballées en tant que WAR, qui dépendent des composants emballés en tant que fichiers JAR

La plupart des changements de code que j'appartiens appartiennent à ces fichiers JAR.

Pour tester les modifications, j'ai besoin de reconditionner le JAR et le WAR et de le déployer en externe dans Tomcat.

J'ai essayé d'utiliser le plugin sysdeo-Tomcat-maven-Eclipse, mais cela n'a pas fonctionné comme prévu.

Veuillez indiquer si quelqu'un a une solution à ce problème

Merci Gaurav

40
Gaurav Madan

Utilisation du plug-in 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, s'il construit sans erreur en ligne de commande, 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).

En dehors de cela, je recommande vraiment d'utiliser le plugin d'intégration Maven Eclipse! J'utilise la version du repo du plugin Sonatypes http://m2Eclipse.sonatype.org/sites/m2e . Il y a une intégration plus récente sur le dépôt Eclipse, mais cela fonctionne différemment et je n'ai pas encore eu le temps d'étudier ses utilisations.

Si votre projet est modulaire, il peut être utile de configurer le projet racine comme un projet simple (no Java, no Java EE). Ensuite, importez le sous- projets aussi simples Java (encore une fois non Java EE). Vous pouvez toujours activer la gestion des dépendances et exécuter les cibles de génération via le projet).

Import modules

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

Select dependencies to include as sub projects

Pour tout projet qui crée des fichiers war, activez les facettes pour Java ee et configurez la racine de contexte sous autre configuration disponible (cela ne peut être fait qu'une seule fois, pourquoi l'option est manquante dans la capture d'écran, alors faites-le bien).

Select your decired facets

Configurez ensuite 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 ajouter entrée du chemin de génération pour dépendances maven à l'assembly de déploiement. Une fois cela configuré, vous pouvez utiliser la directive Exécuter sur le serveur pour démarrer vos applications Web.

Setup deployment Assembly

Je trouve utile de toujours rester en pur Java lors du codage de projets Maven. Toute vue intelligente dans Eclipse ne fait que masquer ce qui se passe derrière la scène, vous avez accès aux éditeurs spécifiques en activant de toute façon des projets à facettes !

38
Martin

J'utilise le plugin Eclipse webtools et j'exécute mon Tomcat à partir de celui-ci. Il a une méthode de republication qui publie également les fichiers jar (sinon, vous nettoyez simplement le répertoire et republiez).

Dans le fichier pom, vous devriez avoir les lignes suivantes afin que les outils Web soient pris en charge automatiquement

<build>
    ...
    <plugins>
        <plugin>
            <artifactId>maven-Eclipse-plugin</artifactId>
            <configuration>
                <wtpversion>1.5</wtpversion>
                ...
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build> 
10
David Rabinowitz

tilisation du plug-in 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 plugin d'intégration Maven Eclipse. Celui-ci doit ê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/Intégration Maven pour Eclipse).

Comme alternative au serveur intégré qui échoue souvent lors de la mise à jour des dépendances de l'espace de travail dans l'assemblage de déploiement (pour Tomcat), je recommanderais d'utiliser Sonatype Web Application Launcher Webby qui est similaire à la directive maven jetty: exécution du 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 plugin installé, vous pouvez exécuter la configuration et exécuter l'application Web à partir d'une construction automatique située dans {project}/target/m2e-webby.

enter image description here

Je recommande de configurer l'un des conteneurs de jetty intégrés (par défaut) en tant que fournisseur pour le servlet-api. Si des exécutions spécifiques doivent être testées, un conteneur externe peut facilement être configuré en naviguant vers 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 fermées manuellement, il n'y a pas de "redémarrage".
  • Chaque application Web doit s'exécuter sur un port distinct, elles ne partagent pas l'instance de conteneur.
2
Martin