2011-02-24 2 views
44

Quelqu'un peut-il m'expliquer le flux de travail de compilation, de déploiement et d'emballage d'IntelliJ IDEA avec le projet maven lié?IntelliJ IDEA: Maven, compilation et déploiement de projet

J'ai rencontré un malentendu lorsque je lance le serveur Tomcat via le mode de débogage d'IDEA. Par exemple, j'ai un artefact - archive de guerre. Comme je comprends quand j'exécute le mode de débogage - IDEA recompile et met à jour le code changé dans war-archive. Mais que se passe-t-il avec un artefact maven emballé? Est-ce que IntelliJ le met à jour? Ou je dois définir l'option 'Buld maven avant le démarrage' pour être sûr que le code modifié sera téléchargé dans l'environnement?

Répondre

61

Intelli J n'utilise pas maven pour générer le projet en utilisant son propre processus de construction. Il utilise le fichier pom comme description du projet. Cela signifie un certain nombre de choses, si vous voulez construire un artefact tel qu'un fichier war en cours d'exécution dans tomcat, tout ce que vous avez à faire est de dire à IntelliJ de construire la guerre dans la boîte de dialogue Run/Debug Configurations. IntelliJ crée automatiquement tous les artefacts que vous spécifiez sous l'onglet de déploiement de votre configuration d'exécution/de débogage. Donc, si vous spécifiez la guerre éclatée, elle construira la guerre éclatée, si vous spécifiez la guerre régulière, elle construira la guerre régulière.

Il est parfois nécessaire d'exécuter des plug-ins personnalisés ou de créer des cibles. Dans ce cas, vous pouvez configurer IntelliJ pour exécuter les objectifs maven personnalisés.

Vous pouvez également demander à intellIJ d'exécuter l'objectif du package maven plutôt que de créer l'artefact. IntelliJ déploiera tout ce qui se trouve sous le répertoire cible sur Tomcat. L'important à emporter est IntellIJ utilise deux systèmes de construction distincts. Vous devez indiquer à chaque système de construction ce qu'il doit faire. Et vous devez dire à IntelliJ quel système de construction utiliser pour quoi. IntelliJ utilisera par défaut son propre système de construction une fois qu'un projet a été importé, sauf si vous lui dites d'utiliser maven pour quelque chose. Alors qu'IntelliJ va construire l'artefact que vous spécifiez dans le fichier pom, il ne fera rien comme le déployer votre référentiel d'artefacts (local ou autre) à moins que vous ne cliquiez sur la cible de déploiement dans la fenêtre des outils Maven.

De même, si vous modifiez votre fichier pom et que la réimportation automatique n'est pas activée, ces modifications ne seront pas reflétées dans votre projet tant que vous ne cliquerez pas sur l'option forcer l'importation depuis la fenêtre Outils Maven.

+0

Raconter IntelliJ pour exécuter l'objectif « paquet » serait grand pour moi depuis que je l'ai fait le filtrage des ressources sur la phase d'emballage ... serait que le travail plus lent que d'utiliser les artefacts de IntelliJ? Merci. –

+0

@jon Je pense que cela pourrait être légèrement plus lent principalement parce que maven va essayer de tirer tous les poms. Si vous courez en mode hors ligne, ce sera probablement pareil. –

+0

Bonne information, merci! –

-4

Je pense que vous cherchez cela.

Maven IDEA Plugin

Le plug-in IDEA est utilisé pour générer des fichiers (IPR, IML, et IWS) pour un projet afin que vous puissiez travailler à l'aide de l'IDE, IntelliJ IDEA.

Espoirs qui aide

+2

IntellIJ charge maintenant automatiquement un pom.xml et génère tous les fichiers dont il a besoin (ipr, iml et iws) Vous n'avez donc plus besoin d'utiliser le plugin Maven IDEA. –

Questions connexes