IntelliJ: Praca nad wieloma projektami


332

Budujemy w maven wiele projektów (nazwijmy je A, B, C). Projekt A używa .jar z projektu B, który używa .jar z projektu C.

Zmieniam kody wszystkich projektów A / B / C, (A to aplikacja MVC, B to usługi biznesowe, a C to jakaś wspólna warstwa).

Chodzi o to, że w Eclipse / NetBeans widzę je wszystkie jednocześnie i wygodnie jest je modyfikować. Jednak w IDEA muszę otworzyć 3 instancje (lub n instancji) IntelliJ IDEA.

Czy coś brakuje? Czy jest lepsze podejście podczas korzystania z IntelliJ? To dla mnie największy minus IntelliJ.


3
Patrząc na dotychczasowe odpowiedzi, podstawową zasadą, którą widzę, jest to, że IntelliJ definiuje to, co Eclipse nazywa „projektami” jako moduły, a „obszary robocze” jako projekty. Chodzi o to, aby moduły w tym samym projekcie były ze sobą powiązane. Jeśli więc projekt A zależy od projektu B, ale oba są całkowicie niezwiązane z projektem C, dobrze byłoby otworzyć projekty A i B jako moduły w tym samym projekcie IntelliJ, jednocześnie otwierając C w osobnym projekcie w drugiej instancji IntelliJ. Możesz zgodzić się lub nie zgodzić z tym projektem, ale (zakładając, że poprawnie uchwyciłem pomysł) szanuję tę myśl.
John Chesshir,

Odpowiedzi:


134

Tak, twoja intuicja była dobra. Nie powinieneś używać trzech instancji intellij. Możesz otworzyć jeden projekt i dodać inne „części” aplikacji jako moduły. Dodaj je za pomocą przeglądarki projektu, domyślny skrót to alt + 1


1
Robię to samo: zaimportuj główny projekt, a następnie zaimportuję mój drugi projekt za pomocą „modułu importu”, ale później - dostałem „Te moduły zostały usunięte ze struktury maven: ... Czy chcesz je usunąć? z projektu? ” - Następnie wciskam „Nie”. Ale to okno dialogowe pojawia się wiele razy. Co mogę zrobić?
nnhthuan

99
Lepsza odpowiedź poniżej
redDevil

3
@redDevil który?
Piotr Findeisen

4
@redDevil Nie! Ta odpowiedź jest bardziej ogólna, jeśli masz projekty inne niż maven, ta odpowiedź jest lepsza, ponieważ najlepiej głosowana odpowiedź po prostu ich nie obejmuje. Dwie odpowiedzi dotyczą różnych sytuacji i są równie istotne, nikt nie jest lepszy od drugiego.
luk2302

2
Jest to lepsze niż odpowiedź „Tylko Maven”, ale nie pomaga, jeśli masz niepowiązane projekty, które chcesz jednocześnie widzieć (np. Łatwy dostęp do odniesienia do kodu innego projektu) lub jeśli wspierasz bibliotekę zależną od projekt, na którym się koncentrujesz. Niezwykle frustrujące jest to, że IJ nie używał tutaj modelu Eclipse / NetBeans, jest to najważniejsze, co uniemożliwia mi przejście na IJ.
Manius

422

Myślę, że poprawiło się to dzięki najnowszym wersjom IntelliJ. W mojej bieżącej wersji (12.0.2) możesz dodać dowolną liczbę osobnych projektów Maven do tego samego „obszaru roboczego”.

Najprostszym sposobem, jaki to zrobiłem, jest kliknięcie małej +ikony w oknie „Projekty Maven” (Widok> Narzędzia systemu Windows> Projekty Maven), a następnie wybranie dodatkowego pliku pom, który chcesz zaimportować.


2
Wystarczy dodać: po dodaniu projektu Maven zostanie on załadowany do panelu Projekt, jeśli jest to projekt lokalny.
Aram Kocharyan

9
Jeśli te projekty znajdują się w różnych repozytoriach git, możesz zaznaczyć opcję „Kontroluj repozytoria synchronicznie” w ustawieniach (Ustawienia> Kontrola wersji> Git). IntelliJ będzie synchronizował wypychania, aktualizacje i wybór oddziałów w wielu projektach.
Tim Van Laer,

13
Dla tych, którzy są nowi w IntelliJ i nie wiedzą, gdzie jest okno „Projekty Maven”: prawy górny róg.
dustin.schultz


3
Więc jeśli potrzebujesz wielu projektów otwartych, ale są to projekty Gradle lub Ant, nadal nie masz szczęścia. Nie, dziękuję ... Muszę mieć możliwość otwarcia wszystkich 3, takich jak NetBeans i Eclipse. Brak odpowiedniego obszaru roboczego jest pierwszym powodem, dla którego nadal nie używam IJ.
Manius

216

Wykonaj następujące 2 kroki:

Krok 1 : Otwórz „Projekty Maven”

wprowadź opis zdjęcia tutaj

Krok 2 : Wybierz projekt, który chcesz zaimportować:

wprowadź opis zdjęcia tutaj


20
Obraz jest wart tysiąca słów.
Neeraj Jain,

3
Dzięki, to było naprawdę przydatne
J. Adam

3
Ta odpowiedź bardzo mi pomaga, szczególnie w przypadku korzystania ze zrzutów ekranu. Dziękuję Ci.
Chaklader Asfak Arefe

1
Oto odpowiedź, której szukam. Wielkie dzięki :)
Jerin Kurian

1
Nie widzę opcji w moim przypadku:2019.3 community
Marinos An

134

Warunek wstępny

Posiadanie wszystkich powiązanych projektów w tym samym katalogu głównym.

Kroki

1) Najpierw utwórz nowy Pusty projekt

Nowy pusty projekt


2) Następnie wybierz katalog główny wszystkich swoich projektów.

Spowoduje to utworzenie pustego projektu z katalogiem .idea, który po prostu zapamięta organizację modułów, którą zamierzamy wykonać w następnym kroku

Wybierz katalog główny


3) Następnie w następnym oknie importujesz różne projekty jako moduły

Importuj projekty jako moduły


4) W następnym oknie, aby zaimportować każdy projekt, wystarczy dwukrotnie kliknąć build.gradle lub pom.xml

Projekt zostanie zaimportowany jako nowy moduł. Wybierz plik kompilacji


5) Gotowe, masz teraz wszystkie swoje projekty jako moduły otwarte w tym samym projekcie IntelliJ

Wynik


16
To jest dokładnie poprawna odpowiedź na to pytanie. Najpierw utwórz i opróżnij projekt, a następnie dodaj istniejące projekty. Dzięki.
hrzafer

4
masz rozwiązanie. Ale twój „Warunek posiadania wszystkich powiązanych projektów w tym samym katalogu głównym”. Nie jest wymagane. Próbowałem projektów maven i działa dobrze z wersją Intelllij 2017.3. Nie próbowałem jednak ze standardowymi modułami Intellij.
Gauthier Peel

2
Dokładne rozwiązanie!
Satheesh,

2
Najlepsza odpowiedź. Dziękuję :)
AnarchoEnte

2
Pracowałem dla mnie z Intellij Idea 2018.3 i Gradle.
nacina

53

W IntelliJ 14.1.2 zrobiłem to tak:

Wybierz File-> Project Structure-> Modules.

Wybierz +i Import Modulewybierz katalog swojego projektu (lub katalog, w którym istnieje pom) i kliknij OK.

Wykonaj kolejny przepływ ekranów, a po kliknięciu Finishpowinieneś zobaczyć projekt obok istniejącego.

wprowadź opis zdjęcia tutaj


nie można dodać modułu w ten sposób. Cannot import anything from C:/Projects/
kiedykolwiek alian

@everalian, czy masz plik pom.xml w C: / Projects czy gdzie indziej?
Neo

Nie, nie mam pliku pom.xml. Ponieważ używam Gradlekompilacji.
kiedykolwiek alian

2
To powinno być przyjęte rozwiązanie. Nie wszystkie projekty używają maven.
Babken Vardanyan

34

Żadne z rozwiązań nie działało dla mnie, ponieważ nie pracuję nad projektami Maven. Istnieje prostsze rozwiązanie. Iść do:

Plik-> Struktura projektu-> Moduły.

wprowadź opis zdjęcia tutaj

Zamiast dodawać moduł, po prostu kliknij trzecią opcję (skopiuj). Przeglądaj lokalny katalog i wybierz projekt, który chcesz dodać. Nazwa modułu zostanie rozwiązana automatycznie. Otóż ​​to.

Aktualizacja: Jeśli chcesz ponownie otworzyć projekt z wieloma podprojektami, aby uniknąć ponownego wykonywania kroków opisanych powyżej, po prostu przejdź do Plik-> Otwórz ostatnie -> „Twój duży projekt”.


1
Tak ... o tak ... To jest rozwiązanie, którego szukam. Importowanie jako moduł maven lub projekcie nie generują .ideai xxx.imlplików. Może to powodować problemy z kafelkami Apache . Używam z wersją 2018.1.5. Dziękuje bardzo.
Cataclysm

To jest niesamowite! Jedynym minusem jest używanie IDE tylko jako edytora i wciąż konieczność nawigowania do odpowiedniego folderu w celu skompilowania i uruchomienia. Czy ktoś ma łatwy sposób na skorzystanie z tego rozwiązania dla wielu folderów (skopiowanych modułów) i nadal kompilować i uruchamiać w edytorze?
Greg Hilston,

11

Aby rozwinąć odpowiedź @Neo: po wybraniu katalogu. wybierz import module from external modeli wybierz swój model (w tym przypadku maven).

wybierz model

Następnie sprawdź keep project filesopcję z następnego okna dialogowego. Zachowa wszystkie pliki w oryginalnym katalogu.

opcje

Twoja ostateczna struktura projektu byłaby mniej więcej taka.

Struktura

Teraz możesz dodać swój moduł jako zależność do innych modułów, pom.xmla jeśli zmienisz kod źródłowy swoich zależności, Intellij zajmie się aktualizacją projektu (nie ma potrzeby uruchamiania mvnkompilacji ręcznie dla zależności)



6

Możesz użyć wtyczki Armory, która ułatwia przełączanie między projektami. Domyślny skrót na liście projektów jest Alt + A .

Zrzut ekranu okna listy projektów

Domyślnie aktualnie otwarte projekty są wyświetlane na górze tej listy (w odważnym stylu).


6

Otwórz preferencje -> wygląd i zachowanie -> Ustawienia systemu -> wybierz (otwórz projekt w nowym oknie), a następnie zastosuj.wprowadź opis zdjęcia tutaj

Następnie możesz otwierać i edytować wiele projektów.


5
Właśnie tego OP próbuje uniknąć. Chce je w tym samym oknie, wszystkie trzy projekty jednocześnie.
Simon Forsberg,

6

Dla tego, kto korzysta z Gradle, można również skorzystać z tego samego:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Przejdź do: 1. Widok -> Narzędzie Windows -> Gradle 2. Kliknij +przycisk i dodaj build.gradleplik


Czy używasz wersji Community lub Ultimate Edition? Jestem nowy w Intellij i mam tylko CE (2019.3.3). W tym menu nie ma opcji Gradle.
Mike gryzoń

4

Naciśnij „F4” w oknach, które otworzą „Struktura projektu”, a następnie kliknij ikonę „+” lub „Alt + Insert”, aby wybrać nowy projekt do zaimportowania; następnie kliknij przycisk OK ...


Dzięki za klucz. Pomocne było, jeśli zapomniałeś dodać coś z odpowiedzią @ThisIsFlorianK!
Satheesh,

4

Użyj przycisku do dodawania projektów maven i przejdź do folderu projektu. Następnie wybierz pom.xmlplik i dodaj je w IntelliJ.

wprowadź opis zdjęcia tutaj


1

Dla osób nieużywających maven do budowy i chcących dodać nowy projekt (używam intellij 14.1.3):

  1. Kliknij prawym przyciskiem myszy folder najwyższego poziomu w widoku projektu, wybierz nowy -> Moduł
  2. Nazwij moduł o tej samej nazwie co projekt, który chcesz dodać
  3. Z górnego menu wybierz Plik-> Nowy-> Projekt. Wprowadź tę samą nazwę co nowy moduł, a także te same lokalizacje folderów.
  4. Otwórz projekt i poczekaj, aż intellij utworzy strukturę projektu.
  5. Zamknij ten nowy projekt i otwórz oryginalny projekt, do którego moduł został dodany w kroku 2

W zależności od konstruktora konieczne będą dodatkowe kroki, aby dodać go do procesu kompilacji.

W przypadku SBT iw projekcie najwyższego poziomu zmodyfikowałem plik Build.scala, aby zagregować nowy projekt, i dodałem projekt w oknie projektów SBT. Więcej informacji na temat kompilacji wielu projektów SBT: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html


IntelliJ dodał obsługę dodawania modułów sbt do projektu i działał naprawdę dobrze, ale wydaje się, że jest zepsuty od wersji 2017. Nadal możesz dodawać wiele modułów SBT, ale po odświeżeniu tracisz wszystkie oprócz jednego.
Nader Ghanbari

1

Aby Intellij IDEA 2019.2, F4 + kliknij moduł, kliknij +, aby dodać dowolny projekt z dysku twardego, powyżej tego menu możesz edytować IDE podczas tworzenia projektu i innych opcji, bardzo łatwe


0

możesz użyć opcji modułu importu, która otworzy go tak jak zaćmienie w tym samym nawigatorze.


mówi, że nie można otworzyć .ipr do projektu
zawsze alian

0

Jestem nowy w maven i nie rozumiem, jak mogę pracować z lokalnym projektem maven dodanym przez odpowiedź Viktora Nordlinga i nadal mam odpowiednią zależność od pliku pom.xml. Odpowiedź jest prosta: intellij najpierw sprawdza lokalnie dodany moduł, a jeśli go nie znajdzie, zdalnie pobiera projekt. Możesz to sprawdzić, patrząc na „biblioteki zewnętrzne” w przeglądarce projektu podczas dodawania lub usuwania modułu maven.

Mam nadzieję, że to pomoże każdemu.



-1

Nie ma potrzeby przenoszenia całych projektów do modułu. Przypadek użycia modułu jest nieco drobniejszy niż w przypadku kontenera projektu.

Aby otworzyć wiele projektów w tym samym oknie:

Plik -> Otwórz projekt

Wybierz otwórz w tym oknie.

Pole wyboru z napisem dodaj do bieżącego projektu.


1
nie działa. zastępuje on aktualnie otwarty projekt w tym samym oknie.
kiedykolwiek alian

3
@everalian niestety ta funkcja została usunięta.
BAR
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.