IntelliJ: Arbeiten an mehreren Projekten

332

Wir bauen mehrere Projekte ein (nennen wir sie A, B, C). Projekt A verwendet .jar von Projekt B, das .jar von Projekt C verwendet.

Ich ändere die Codes aller A / B / C-Projekte (A ist die MVC-App, B sind Geschäftsdienste und C ist eine gemeinsam genutzte Ebene).

Die Sache ist, in Eclipse / NetBeans kann ich alle auf einmal sehen und es ist bequem, sie zu ändern. In IDEA muss ich jedoch 3 Instanzen (oder n Instanzen) von IntelliJ IDEA öffnen .

Vermisse ich etwas Gibt es einen besseren Ansatz bei der Verwendung von IntelliJ? Dies ist der größte Nachteil von IntelliJ für mich atm.

Xorty
quelle
3
Wenn ich mir die bisherigen Antworten ansehe, sehe ich, dass IntelliJ definiert, was Eclipse "Projekte" als Module und "Arbeitsbereiche" als Projekte nennt. Die Idee ist sicherzustellen, dass Module im selben Projekt ziemlich verwandt sind. Wenn also Projekt A von Projekt B abhängt, beide jedoch völlig unabhängig von Projekt C sind, ist es sinnvoll, die Projekte A und B als Module in demselben IntelliJ-Projekt zu öffnen, während C in einem separaten Projekt in einer zweiten IntelliJ-Instanz geöffnet wird. Sie können dem Design zustimmen oder nicht zustimmen, aber (vorausgesetzt, ich habe die Idee richtig erfasst) ich ehre den Gedanken dahinter.
John Chesshir

Antworten:

134

Ja, deine Intuition war gut. Sie sollten nicht drei Instanzen von Intellij verwenden. Sie können ein Projekt öffnen und andere 'Teile' der Anwendung als Module hinzufügen. Fügen Sie sie über den Projektbrowser hinzu. Der Standard-Hotkey ist Alt + 1

ŁukaszBachman
quelle
1
Ich mache das gleiche: Importiere das Hauptprojekt, dann importiere ich mein zweites Projekt mit 'Importmodul', aber später als - Ich habe "Diese Module wurden aus der Maven-Struktur entfernt: ... Möchten Sie, dass sie entfernt werden auch aus dem Projekt? " - Dann drücke ich 'Nein'. Dieser Dialog erscheint jedoch häufig. Was kann ich machen?
nnhthuan
99
Bessere Antwort unten
redDevil
3
@redDevil welches?
Piotr Findeisen
4
@redDevil Nein! Diese Antwort ist allgemeiner. Wenn Sie Nicht-Maven-Projekte haben, ist diese Antwort besser, da die Antwort mit der höchsten Bewertung sie einfach nicht abdeckt. Die beiden Antworten befassen sich mit unterschiedlichen Situationen und sind gleichermaßen relevant, keiner ist besser als der andere.
luk2302
2
Dies ist besser als die Antwort "Nur Maven", aber es hilft nicht, wenn Sie nicht verwandte Projekte haben, die gleichzeitig sichtbar sein sollen (z. B. einfacher Zugriff auf den Code eines anderen Projekts) oder wenn Sie eine Bibliothek unterstützen, von der eine Abhängigkeit besteht das Projekt, auf das Sie sich konzentrieren. Es ist äußerst frustrierend, dass IJ das Eclipse / NetBeans-Modell hier nicht verwendet hat. Es ist die Hauptsache, die mich daran hindert, zu IJ zu wechseln.
Manius
422

Ich denke, dies hat sich mit den neuesten Versionen von IntelliJ verbessert. In meiner aktuellen Version (12.0.2) können Sie dem gleichen "Arbeitsbereich" beliebig viele separate Maven-Projekte hinzufügen.

Der einfachste Weg, dies zu tun, besteht darin, auf das kleine +Symbol im Fenster "Maven-Projekte" (Ansicht> Werkzeugfenster> Maven-Projekte) zu klicken und dann die zusätzliche POM-Datei auszuwählen, die Sie importieren möchten.

Viktor Nordling
quelle
2
Nur zum Hinzufügen: Sobald das Maven-Projekt hinzugefügt wurde, wird es im Projektfenster geladen, wenn es sich um ein lokales Projekt handelt.
Aram Kocharyan
9
Wenn sich diese Projekte in verschiedenen Git-Repositorys befinden, können Sie in den Einstellungen (Einstellungen> Versionskontrolle> Git) die Option "Repositorys synchron steuern" aktivieren. IntelliJ wird Pushs, Updates und Zweigauswahl über mehrere Projekte hinweg synchronisieren.
Tim Van Laer
13
Für diejenigen, die IntelliJ noch nicht kennen und nicht wissen, wo sich das Fenster "Maven Projects" befindet: obere rechte Ecke.
Dustin.schultz
1
Mit der Version 2017 ist es anders, siehe jetbrains.com/help/idea/2017.1/maven-projects-tool-window.html
vikramvi
3
Wenn Sie also mehrere offene Projekte benötigen, es sich jedoch um Gradle- oder Ant-Projekte handelt, haben Sie immer noch kein Glück. Nein danke ... Ich muss in der Lage sein, alle 3 offen zu haben, wie es NetBeans und Eclipse erlauben. Das Fehlen eines geeigneten Arbeitsbereichs ist der Hauptgrund, warum ich IJ immer noch nicht verwende.
Manius
215

Bitte folgen Sie diesen 2 Schritten:

Schritt 1 : Öffnen Sie "Maven Projects"

Geben Sie hier die Bildbeschreibung ein

Schritt 2 : Wählen Sie das Projekt aus, das Sie importieren möchten:

Geben Sie hier die Bildbeschreibung ein

Tho
quelle
20
Ein Bild sagt mehr als tausend Worte.
Neeraj Jain
3
Danke, das war wirklich nützlich
J. Adam
3
Diese Antwort hilft mir sehr, insbesondere bei der Verwendung der Screenshots. Vielen Dank.
Chaklader Asfak Arefe
1
Dies ist die Antwort, die ich suche. Vielen Dank :)
Jerin Kurian
1
Ich sehe die Option in meiner Instanz nicht:2019.3 community
Marinos An
133

Voraussetzung

Alle zugehörigen Projekte im selben Stammverzeichnis haben.

Schritte

1) Zuerst erstellen Sie ein neues leeres Projekt

Neues leeres Projekt


2) Anschließend wählen Sie das Stammverzeichnis aller Ihrer Projekte aus.

Dadurch wird ein leeres Projekt mit einem .idea-Verzeichnis erstellt, das sich einfach an die Modulorganisation erinnert, die wir im nächsten Schritt durchführen werden

Stammverzeichnis auswählen


3) Anschließend importieren Sie im nächsten Fenster die verschiedenen Projekte als Module

Projekte als Module importieren


4) Um jedes Projekt zu importieren, doppelklicken Sie im nächsten Fenster einfach auf build.gradle oder pom.xml

Das Projekt wird als neues Modul importiert. Wählen Sie die Build-Datei


5) Fertig, Sie haben jetzt alle Ihre Projekte als Module, die auf demselben IntelliJ-Projekt geöffnet sind

Ergebnis

ThisIsFlorianK
quelle
15
Dies ist die genau richtige Antwort auf diese Frage. Erstellen und leeren Sie zuerst ein Projekt und fügen Sie dann vorhandene Projekte hinzu. Vielen Dank.
Hrzafer
3
Sie haben die Lösung. Aber Ihre 'Voraussetzung Alle verwandten Projekte im selben Stammverzeichnis haben.' ist nicht nötig. Ich habe es für Maven-Projekte versucht und es funktioniert einwandfrei mit Intelllij Version 2017.3. Ich habe es jedoch nicht mit Intellij-Standardmodulen versucht.
Gauthier Peel
1
Die genaue Lösung!
Satheesh
2
Top Antwort. Vielen Dank :)
AnarchoEnte
2
Arbeitete für mich mit Intellij Idea 2018.3 und Gradle.
schneidet
53

In IntelliJ 14.1.2 habe ich Folgendes getan:

Wählen Sie File-> Project Structure-> Modules.

Wählen Sie +und Import Moduleund wählen Sie das Verzeichnis Ihres Projekts (oder das Verzeichnis, in dem pom vorhanden ist) und klicken Sie auf OK.

Folgen Sie den nächsten Bildschirmabläufen. Nachdem Sie auf geklickt haben Finish, sollte das Projekt neben dem vorhandenen angezeigt werden .

Geben Sie hier die Bildbeschreibung ein

Neo
quelle
kann das Modul nicht so hinzufügen. Cannot import anything from C:/Projects/
jemals alian
@everalian, hast du die pom.xml in C: / Projects oder anderswo?
Neo
Nein, ich habe keine pom.xml-Datei. Weil ich Gradlebuild benutze .
jemals alian
2
Dies sollte die akzeptierte Lösung sein. Nicht alle Projekte verwenden Maven.
Babken Vardanyan
ausgezeichnete Lösung, besser als die akzeptierte
Olivier Boissé
34

Keine der Lösungen hat bei mir funktioniert, da ich nicht an Maven-Projekten arbeite. Es gibt eine einfachere Lösung. Gehe zu:

Datei-> Projektstruktur-> Module.

Geben Sie hier die Bildbeschreibung ein

Anstatt ein Modul hinzuzufügen, klicken Sie einfach auf die dritte Option (Kopieren). Durchsuchen Sie Ihr lokales Verzeichnis und wählen Sie das Projekt aus, das Sie hinzufügen möchten. Der Modulname wird automatisch aufgelöst. Das ist es.

Update: Wenn Sie ein Projekt mit mehreren Unterprojekten erneut öffnen möchten, gehen Sie einfach zu Datei-> Zuletzt geöffnet -> 'Ihr großes Projekt' , um zu vermeiden, dass die oben beschriebenen Schritte erneut ausgeführt werden .

gmode
quelle
1
Ja ... oh ja ... Dies ist die Lösung, nach der ich suche. Import als Maven-Modul oder Projekt nicht generieren .ideaund xxx.imlDateien. Dies kann Probleme mit Apache-Kacheln verursachen . Ich benutze mit Version 2018.1.5. Vielen vielen Dank.
Katastrophe
Das ist großartig! Der einzige Nachteil ist, dass die IDE nur als Editor verwendet wird und zum Kompilieren und Ausführen immer noch zum richtigen Ordner navigiert werden muss. Hat jemand eine einfache Möglichkeit, diese Lösung für mehrere Ordner (kopierte Module) zu verwenden und dennoch im Editor zu kompilieren und auszuführen?
Greg Hilston
11

So erweitern Sie @Neo Antwort: Nach Auswahl Ihres Verzeichnisses. wählen , import module from external modelund wählen Sie Ihr Modell (in diesem Fall maven).

Modell auswählen

Aktivieren Sie dann die keep project filesOption im nächsten Dialogfeld. Alle Dateien werden im ursprünglichen Verzeichnis gespeichert.

Optionen

Ihre endgültige Projektstruktur wäre ungefähr so.

Struktur

Jetzt können Sie Ihr Modul als Abhängigkeit zu anderen Modulen hinzufügen. pom.xmlWenn Sie den Quellcode Ihrer Abhängigkeiten ändern, kümmert sich Intellij um die Aktualisierung Ihres Projekts ( mvnfür Abhängigkeiten muss Build nicht manuell ausgeführt werden).

Seyed Jalal Hosseini
quelle
8
  • neues leeres Projekt
  • Datei -> Neu -> Modul aus vorhandenen Quellen
1lOtzM291W
quelle
6

Sie können das Armory-Plugin verwenden, mit dem Sie bequem zwischen Projekten wechseln können. Die Standard - Tastenkürzel für Projektliste ist Alt + A .

Screenshot des Projektlistenfensters

Standardmäßig werden aktuell geöffnete Projekte oben in dieser Liste angezeigt ( fett gedruckt).

PHPLego
quelle
6

Voreinstellung öffnen -> Erscheinungsbild & Verhalten -> Systemeinstellungen -> auswählen (Projekt in neuem Fenster öffnen) und dann anwenden.Geben Sie hier die Bildbeschreibung ein

Dann können Sie mehrere Projekte öffnen und bearbeiten.

Raymond
quelle
5
Genau das versucht das OP zu vermeiden. Er will sie im selben Fenster haben, alle drei Projekte gleichzeitig.
Simon Forsberg
6

Für diejenigen, die Gradle verwenden, kann auch das Gleiche in Anspruch genommen werden:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Gehen Sie zu: 1. Ansicht -> Werkzeugfenster -> Gradle 2. Klicken Sie auf die +Schaltfläche und fügen Sie Ihre build.gradleDatei hinzu

Abhishek Ransingh
quelle
Verwenden Sie die Community Edition oder die Ultimate Edition? Ich bin neu bei Intellij und habe nur CE (2019.3.3). Gradle ist in diesem Menü nicht enthalten.
Mike Nagetier
4

Drücken Sie "F4" in Fenstern, um "Projektstruktur" zu öffnen, und klicken Sie dann auf das Symbol "+" oder "Alt + Einfügen", um ein neues zu importierendes Projekt auszuwählen. Klicken Sie dann auf OK ...

Akshay Lokur
quelle
Danke für den Schlüssel. Es war hilfreich, wenn Sie vergessen haben, mit der Antwort von @ThisIsFlorianK etwas hinzuzufügen!
Satheesh
4

Verwenden Sie die Schaltfläche zum Hinzufügen von Maven-Projekten und gehen Sie in den Ordner des Projekts. Wählen Sie dann die pom.xmlDatei aus und fügen Sie sie im IntelliJ hinzu.

Geben Sie hier die Bildbeschreibung ein

Chaklader Asfak Arefe
quelle
1

Für Leute, die Maven nicht zum Erstellen verwenden und ein neues Projekt hinzufügen möchten (ich verwende Intellij 14.1.3):

  1. Klicken Sie mit der rechten Maustaste auf den Ordner der obersten Ebene in der Projektansicht und wählen Sie Neu -> Modul
  2. Benennen Sie das Modul mit dem Namen des hinzuzufügenden Projekts
  3. Wählen Sie im oberen Menü Datei-> Neu-> Projekt. Geben Sie denselben Namen wie das neue Modul und dieselben Ordner ein.
  4. Öffnen Sie das Projekt und warten Sie, bis Intellij die Projektstruktur erstellt hat.
  5. Schließen Sie dieses neue Projekt und öffnen Sie das ursprüngliche Projekt, zu dem das Modul in Schritt 2 hinzugefügt wurde

Abhängig von Ihrem Builder sind zusätzliche Schritte erforderlich, um es dem Build-Prozess hinzuzufügen.

Für SBT und im Projekt der obersten Ebene habe ich die Datei Build.scala geändert, um das neue Projekt zu aggregieren, und das Projekt im Fenster SBT-Projekte hinzugefügt. Weitere Informationen zu SBT-Multiprojekt-Builds: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html

Jenn
quelle
IntelliJ hat Unterstützung für das Hinzufügen von sbt-Modulen zu einem Projekt hinzugefügt und es hat wirklich gut funktioniert, aber es scheint seit den Versionen von 2017 kaputt zu sein. Sie können immer noch mehrere sbt-Module hinzufügen, aber wenn Sie aktualisieren, verlieren Sie alle bis auf eines.
Nader Ghanbari
1

Um Intellij IDEA 2019.2, F4 + auf Modul zu klicken, klicken Sie auf +, um ein Projekt von Ihrer Festplatte hinzuzufügen. Über diesem Menü können Sie die IDE bearbeiten, während Sie das Projekt erstellen, und weitere Optionen, ganz einfach

Danilo Parada
quelle
0

Sie können die Option zum Importieren von Modulen verwenden, die es genau wie Eclipse im selben Navigator öffnet.

SMHasnain
quelle
Es heißt, dass .ipr nicht in das Projekt geöffnet werden kann
je
0

Ich bin neu in Maven und habe nicht verstanden, wie ich mit einem lokalen Maven-Projekt arbeiten kann, das durch die Antwort von Viktor Nordling hinzugefügt wurde , und habe immer noch eine ordnungsgemäße Abhängigkeit in der Datei pom.xml. Die Antwort ist einfach: Intellij betrachtet zuerst Ihr lokal hinzugefügtes Modul und wenn es keines findet, wird das Projekt aus der Ferne abgerufen. Sie können dies überprüfen, indem Sie in Ihrem Projektbrowser unter "Externe Bibliotheken" nachsehen, wenn Sie ein Maven-Modul hinzufügen oder entfernen.

Hoffe das hilft jedem.

drakonli
quelle
0

Ab Release 2019.2 ist dies so einfach wie Datei-> Projekt anhängen.

🎉🎉🎉🎉🎉

Datei-> Projekt anhängen

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

Jeremy John
quelle
Verwenden Sie die Community Edition oder die Ultimate Edition? Ich bin neu bei Intellij und habe nur CE (2019.3.3). In diesem Menü befindet sich kein Projekt anhängen.
Mike Nagetier
-1

Es ist nicht erforderlich, ganze Projekte in ein Modul zu verschieben. Der Anwendungsfall für das Modul ist etwas feiner als für einen Projektcontainer.

So öffnen Sie mehrere Projekte im selben Fenster:

Datei -> Projekt öffnen

Wählen Sie in diesem Fenster öffnen.

Kontrollkästchen mit der Aufschrift Zum aktuellen Projekt hinzufügen.

BAR
quelle
1
funktioniert nicht. Es ersetzt das aktuell geöffnete Projekt im selben Fenster.
jemals alian
3
@everalian leider wurde diese Funktion entfernt.
BAR