IntelliJ: Travailler sur plusieurs projets

332

Nous construisons dans maven plusieurs projets (appelons-les A, B, C). Le projet A utilise le .jar du projet B qui utilise le .jar du projet C.

Je modifie les codes de tous les projets A / B / C, (A est l'application MVC, B sont des services commerciaux et C est une couche partagée).

Le fait est que dans Eclipse / NetBeans, je peux tous les voir en même temps et il est confortable de les modifier. Dans IDEA cependant, je dois ouvrir 3 instances (ou n instances) d'IntelliJ IDEA.

Suis-je en train de manquer quelque chose? Existe-t-il une meilleure approche lors de l'utilisation d'IntelliJ? C'est le plus gros inconvénient d'IntelliJ pour moi.

Xorty
la source
3
En regardant à travers les réponses à ce jour, l'essentiel que je vois est qu'IntelliJ définit ce que Eclipse appelle des "projets" en tant que modules et des "espaces de travail" en tant que projets. L'idée est de s'assurer que les modules d'un même projet sont assez liés. Donc, si le projet A dépend du projet B, mais que les deux sont totalement indépendants du projet C, il serait bon d'ouvrir les projets A et B en tant que modules dans le même projet IntelliJ, tout en ouvrant C dans un projet distinct dans une seconde instance IntelliJ. Vous pouvez être d'accord ou en désaccord avec la conception, mais (en supposant que j'ai correctement saisi l'idée) j'honore la pensée qui la sous-tend.
John Chesshir

Réponses:

134

Oui, ton intuition était bonne. Vous ne devez pas utiliser trois instances d'intellij. Vous pouvez ouvrir un projet et ajouter d'autres «parties» d'application en tant que modules. Ajoutez-les via le navigateur de projet, le raccourci clavier par défaut est alt + 1

ŁukaszBachman
la source
1
Je fais de même: importez le projet principal, puis j'importe mon deuxième projet en utilisant 'module d'importation', mais plus tard que - j'ai obtenu "Ces modules ont été supprimés de la structure maven: ... Voulez-vous qu'ils soient supprimés du projet aussi? " - Ensuite, j'appuie sur «Non». Mais cette boîte de dialogue apparaît plusieurs fois. Que puis-je faire?
nnhthuan
99
Meilleure réponse ci
redDevil
3
@redDevil lequel?
Piotr Findeisen
4
@redDevil Non! Cette réponse est plus générale, si vous avez des projets non-maven, cette réponse est meilleure car la réponse la plus votée ne les couvre tout simplement pas. Les deux réponses abordent des situations différentes et sont tout aussi pertinentes, aucune n'est meilleure que l'autre.
luk2302
2
C'est mieux que la réponse "Maven uniquement" mais cela n'aide pas si vous avez des projets non liés que vous souhaitez voir simultanément (par exemple un accès facile pour se référer au code d'un autre projet), ou si vous supportez une bibliothèque qui est une dépendance de le projet sur lequel vous vous concentrez. Extrêmement frustrant de voir comment IJ n'a pas utilisé le modèle Eclipse / NetBeans ici, c'est la principale chose qui m'empêche de passer à IJ.
Manius
423

Je pense que cela s'est amélioré avec les versions récentes d'IntelliJ. Dans ma version actuelle (12.0.2), vous pouvez ajouter n'importe quel nombre de projets Maven distincts dans le même "espace de travail".

Le moyen le plus simple que j'ai trouvé pour ce faire est de cliquer sur la petite +icône dans la fenêtre "Maven Projects" (Affichage> Fenêtres d'outils> Maven Projects), puis de sélectionner le fichier pom supplémentaire que vous souhaitez importer.

Viktor Nordling
la source
2
Juste pour ajouter: une fois le projet Maven ajouté, il se chargera dans le panneau Projet s'il s'agit d'un projet local.
Aram Kocharyan
9
Si ces projets se trouvent dans différents référentiels git, vous pouvez cocher 'Contrôler les référentiels de manière synchrone' dans les paramètres (Paramètres> Contrôle de version> Git). IntelliJ gardera les push, les mises à jour et la sélection des branches synchronisés sur les multiples projets.
Tim Van Laer
13
Pour ceux qui sont nouveaux à IntelliJ et ne savent pas où se trouve la fenêtre "Maven Projects": coin supérieur droit.
dustin.schultz
1
Avec la version 2017, c'est différent, référez-vous à jetbrains.com/help/idea/2017.1/maven-projects-tool-window.html
vikramvi
3
Donc, si vous avez besoin de plusieurs projets ouverts, mais qu'il s'agit de projets Gradle ou Ant, vous n'avez toujours pas de chance. Non merci ... Je dois pouvoir ouvrir les 3, comme le permettent NetBeans et Eclipse. Le manque d'un espace de travail approprié est la raison n ° 1 pour laquelle je n'utilise toujours pas IJ.
Manius
216

Veuillez suivre ces 2 étapes:

Étape 1 : Ouvrez "Maven Projects"

entrez la description de l'image ici

Étape 2 : Sélectionnez le projet que vous souhaitez importer:

entrez la description de l'image ici

Tho
la source
20
Une image vaut mieux que mille mots.
Neeraj Jain
3
Merci, c'était vraiment utile
J. Adam
3
Cette réponse m'aide beaucoup, surtout pour l'utilisation des captures d'écran. Je vous remercie.
Chaklader Asfak Arefe
1
C'est la réponse que je cherche. Merci beaucoup :)
Jerin Kurian
1
Je ne vois pas l'option dans mon cas:2019.3 community
Marinos
134

Prérequis

Avoir tous les projets associés dans le même répertoire racine.

Pas

1) Vous créez d'abord un nouveau projet vide

Nouveau projet vide


2) Ensuite, vous sélectionnez le répertoire racine de tous vos projets.

Cela créera un projet vide, avec un répertoire .idea qui se souviendra simplement de l'organisation du module que nous sommes sur le point de faire à l'étape suivante

Sélectionnez le répertoire racine


3) Ensuite, dans la fenêtre suivante, vous importez les différents projets sous forme de modules

Importer des projets sous forme de modules


4) Dans la fenêtre suivante, pour importer chaque projet, double-cliquez simplement sur build.gradle ou pom.xml

Le projet sera importé en tant que nouveau module. Sélectionnez le fichier de construction


5) Terminé, vous avez maintenant tous vos projets en modules, ouverts sur le même projet IntelliJ

Résultat

ThisIsFlorianK
la source
16
Ceci est la réponse exacte exacte à cette question. Tout d'abord, créez et videz un projet, puis ajoutez des projets existants. Merci.
hrzafer
4
vous avez LA solution. Mais votre «pré-requis Avoir tous les projets associés dans le même répertoire racine». n'est pas requis. J'ai essayé pour les projets maven et cela fonctionne bien avec Intelllij version 2017.3. Je n'ai pas encore essayé avec les modules standard intellij.
Gauthier Peel
2
La solution exacte!
Satheesh
2
Meilleure réponse. Merci :)
AnarchoEnte
2
A travaillé pour moi avec Intellij Idea 2018.3 et Gradle.
incise
53

Dans IntelliJ 14.1.2, je l'ai fait comme suit:

Sélectionnez File-> Project Structure-> Modules.

Sélectionnez +et Import Modulesélectionnez le répertoire de votre projet (ou le répertoire où existe pom) et cliquez sur OK.

Suivez le prochain flux d'écrans et après avoir cliqué Finish, vous devriez voir le projet à côté de votre existant.

entrez la description de l'image ici

Néo
la source
ne peut pas ajouter le module comme celui-ci. Cannot import anything from C:/Projects/
ever alian
@everalian, avez-vous le pom.xml dans C: / Projects ou ailleurs?
Neo
Non, je n'ai pas de fichier pom.xml. Parce que j'utilise Gradlebuild.
ever alian
2
Cela devrait être la solution acceptée. Tous les projets n'utilisent pas maven.
Babken Vardanyan
34

Aucune des solutions n'a fonctionné pour moi, car je ne travaille pas sur des projets Maven. Il existe une solution plus simple. Aller à:

Fichier-> Structure du projet-> Modules.

entrez la description de l'image ici

Au lieu d'ajouter un module, cliquez simplement sur la troisième option (copier).Parcourez votre répertoire local et sélectionnez le projet que vous souhaitez ajouter. Le nom du module se résoudra automatiquement. C'est tout.

Mise à jour: Lorsque vous souhaitez rouvrir le projet avec plusieurs sous-projets, afin d'éviter de refaire les étapes décrites ci-dessus, allez simplement dans Fichier-> Ouvrir récent -> 'Votre grand projet'.

gmode
la source
1
Oui ... oh oui .... C'est la solution que je recherche. L'importation en tant que module ou projet maven ne génère pas de fichiers .ideaet xxx.iml. Cela peut entraîner des problèmes avec les tuiles Apache . J'utilise avec la version 2018.1.5. Merci beaucoup.
Cataclysm
Ceci est incroyable! Le seul inconvénient est d'utiliser l'EDI uniquement en tant qu'éditeur et d'avoir toujours à naviguer dans le bon dossier pour compiler et exécuter. Quelqu'un a-t-il un moyen facile d'utiliser cette solution pour plusieurs dossiers (modules copiés) et de toujours compiler et exécuter dans l'éditeur?
Greg Hilston
11

Pour développer la réponse @Neo: après avoir choisi votre répertoire. sélectionnez import module from external modelet choisissez votre modèle (maven dans ce cas).

choisissez le modèle

Cochez ensuite l' keep project filesoption de la boîte de dialogue suivante. Il conservera tous les fichiers dans le répertoire d'origine.

les options

La structure finale de votre projet ressemblerait à ceci.

structure

Vous pouvez maintenant ajouter votre module en tant que dépendance à d'autres modules pom.xmlet si vous modifiez le code source de vos dépendances, Intellij se charge de mettre à jour votre projet (il n'est pas nécessaire d'exécuter mvnmanuellement la construction pour les dépendances)

Seyed Jalal Hosseini
la source
8
  • nouveau projet vide
  • Fichier -> Nouveau -> Module à partir de sources existantes
1lOtzM291W
la source
6

Vous pouvez utiliser le plugin Armory qui facilite le basculement entre les projets. Le raccourci par défaut pour la liste des projets est Alt + A .

Capture d'écran de la fenêtre Liste des projets

Par défaut, les projets actuellement ouverts sont affichés en haut de cette liste (en gras ).

PHPLego
la source
6

Ouvrir les préférences -> apparence et comportement -> Paramètres système -> sélectionner (ouvrir le projet dans une nouvelle fenêtre) puis appliquer.entrez la description de l'image ici

Ensuite, vous pouvez ouvrir et modifier plusieurs projets.

Raymond
la source
5
C'est exactement ce que l'OP essaie d'éviter. Il les veut dans la même fenêtre, les trois projets à la fois.
Simon Forsberg
6

Pour ceux qui utilisent Gradle peuvent également bénéficier des mêmes:

entrez la description de l'image ici

entrez la description de l'image ici

Allez à: 1. Affichage -> Fenêtres d'outils -> Gradle 2. Cliquez sur le +bouton et ajoutez votre build.gradlefichier

Abhishek Ransingh
la source
Utilisez-vous l'édition communautaire ou l'édition ultime? Je suis nouveau chez Intellij et je n'ai obtenu que le CE (2019.3.3). Cela n'a pas Gradle dans ce menu.
mike rodent
4

Appuyez sur "F4" sur les fenêtres qui ouvriront "Structure du projet" puis cliquez sur l'icône "+" ou "Alt + Insérer" pour sélectionner un nouveau projet à importer; puis cliquez sur le bouton OK ...

Akshay Lokur
la source
Merci pour la clé. Cela a été utile si vous avez oublié d'ajouter quoi que ce soit avec la réponse de @ThisIsFlorianK!
Satheesh
4

Utilisez le bouton pour ajouter des projets maven et allez dans le dossier du projet. Ensuite, sélectionnez le pom.xmlfichier et ajoutez-les dans IntelliJ.

entrez la description de l'image ici

Chaklader Asfak Arefe
la source
1

Pour les personnes n'utilisant pas maven pour construire et souhaitant ajouter un nouveau projet (j'utilise intellij 14.1.3):

  1. Cliquez avec le bouton droit sur le dossier de niveau supérieur dans la vue du projet, sélectionnez nouveau -> Module
  2. Nommez le module du même nom que le projet à ajouter
  3. Dans le menu supérieur, sélectionnez Fichier-> Nouveau-> Projet. Entrez le même nom que le nouveau module, les mêmes emplacements de dossier également.
  4. Ouvrez le projet et attendez qu'intellij crée la structure du projet.
  5. Fermez ce nouveau projet et ouvrez le projet d'origine auquel le module a été ajouté à l'étape 2

Selon votre constructeur, des étapes supplémentaires seront nécessaires pour l'ajouter au processus de génération.

Pour SBT, et dans le projet de niveau supérieur, j'ai modifié le fichier Build.scala pour agréger le nouveau projet et j'ai ajouté le projet dans la fenêtre des projets SBT. Plus d'informations sur les builds multiprojets SBT: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html

Jenn
la source
IntelliJ a ajouté la prise en charge de l'ajout de modules sbt à un projet et cela fonctionnait vraiment bien, mais il semble être cassé depuis les versions de 2017. Vous pouvez toujours ajouter plusieurs modules sbt, mais lorsque vous actualisez, vous finissez par tout perdre sauf un.
Nader Ghanbari,
1

Pour Intellij IDEA 2019.2, F4 + cliquez sur le module, cliquez sur + pour ajouter un projet à partir de votre disque dur, au-dessus de ce menu, vous pouvez modifier l'IDE avec vous créez le projet et plus d'options, très facile

danilo parada
la source
0

vous pouvez utiliser l'option du module d'importation qui l'ouvrira comme eclipse dans le même navigateur.

SMHasnain
la source
il ne peut pas ouvrir .ipr dans le projet
jamais alian
0

Je suis nouveau sur maven et je ne comprenais pas comment je pouvais travailler avec le projet maven local ajouté via la réponse de Viktor Nordling et j'ai toujours une dépendance appropriée dans le fichier pom.xml. La réponse est simple: intellij examine d'abord votre module ajouté localement et s'il n'en trouve pas, il récupère le projet à distance. Vous pouvez vérifier cela en consultant les "bibliothèques externes" sous votre navigateur de projet lorsque vous ajoutez ou supprimez le module maven.

J'espère que cela aide n'importe qui.

drakonli
la source
0

Depuis la version 2019.2, c'est aussi simple que File-> Attach Project.

🎉🎉🎉🎉🎉

Fichier-> Attacher un projet

Voir: https://youtrack.jetbrains.com/issue/WEB-7968

Jeremy John
la source
Utilisez-vous l'édition communautaire ou l'édition ultime? Je suis nouveau chez Intellij et je n'ai obtenu que le CE (2019.3.3). Il n'y a pas de projet Attach dans ce menu.
mike rodent
-1

Il n'est pas nécessaire de déplacer des projets entiers vers un module. Le cas d'utilisation du module est un peu plus fin que celui d'un conteneur de projet.

Pour ouvrir plusieurs projets dans la même fenêtre:

Fichier -> Ouvrir le projet

Sélectionnez Ouvrir dans cette fenêtre.

Case à cocher qui indique ajouter au projet en cours.

BAR
la source
1
Ca ne fonctionne pas. il remplace le projet ouvert en cours dans la même fenêtre.
ever alian
3
@everalian, malheureusement, cette fonctionnalité a été supprimée.
BAR