IntelliJ: Робота над кількома проектами


332

Ми будуємо в Maven кілька проектів (назвемо їх A, B, C). Проект A використовує .jar проекту B, який використовує .jar проекту C.

Я змінюю коди всіх проектів A / B / C (A - додаток MVC, B - бізнес-послуги, а C - деякий загальний рівень).

Річ у тім, що в Eclipse / NetBeans я можу побачити їх усі одразу, і їх зручно змінювати. Однак в IDEA мені потрібно відкрити 3 екземпляри (або п екземплярів) IntelliJ IDEA.

Я щось пропускаю? Чи є кращий підхід при використанні IntelliJ? Це найбільший недолік IntelliJ для мене atm.


3
Переглядаючи відповіді на сьогоднішній день, основна суть, яку я бачу, полягає в тому, що IntelliJ визначає те, що Eclipse називає "проектами" як модулі, а "робочі простори" - проектами. Ідея полягає у тому, щоб модулі в одному проекті були відносно пов'язаними. Отже, якщо проект A залежить від проекту B, але обидва повністю не пов'язані з проектом C, було б добре відкривати проекти A і B як модулі в одному проекті IntelliJ, відкриваючи C в окремому проекті у другому екземплярі IntelliJ. Ви можете погодитись або не погодитися з дизайном, але (якщо припустити, що я правильно захопив ідею) я шаную думку, що стоїть за нею.
Джон Чесшир

Відповіді:


134

Так, ваша інтуїція була гарна. Не слід використовувати три екземпляри Intellij. Ви можете відкрити один Проект і додати інші "частини" програми як Модулі. Додайте їх через браузер проекту, гаряча клавіша за замовчуванням - alt + 1


1
Я роблю те саме: імпортую основний проект, потім імпортую свій другий проект за допомогою "модуля імпорту", але пізніше - я отримав "Ці модулі були вилучені із структури Maven: ... Ви хочете, щоб вони були видалені від проекту теж? " - Тоді я натискаю "Ні". Але це діалогове вікно з’являється багато разів. Що я можу зробити?
nnhthuan

99
Краща відповідь нижче
redDevil

3
@redDevil який з них?
Пьотр Фіндейсен

4
@redDevil Ні! Ця відповідь є загальнішою, якщо у вас є непрофільні проекти, ця відповідь краще, оскільки відповідь, яка проголосує вгорі, просто не охоплює їх. Два відповіді стосуються різних ситуацій і однаково актуальні, ніхто не кращий за інші.
luk2302

2
Це краще, ніж відповідь "Maven only", але це не допомагає, якщо у вас є непов'язані проекти, які ви хочете одночасно бачити (наприклад, простий доступ для посилання на код іншого проекту) або якщо ви підтримуєте бібліотеку, залежність якої проект, на який ви зосереджені. Надзвичайно засмучує те, як IJ не використовував модель Eclipse / NetBeans тут, це головне, що заважає мені перейти на IJ.
Маній

422

Я думаю, що це покращилося з останніми версіями IntelliJ. У моїй поточній версії (12.0.2) ви можете додати будь-яку кількість окремих проектів Maven до тієї ж «робочої області».

Найпростіший спосіб, який я знайшов для цього, - це натиснути на маленьку +піктограму у вікні "Maven Projects" (Перегляд> Інструмент Windows> Maven Projects), а потім вибрати додатковий файл пом, який потрібно імпортувати.


2
Просто додати: щойно доданий проект Maven, він завантажується на панель проекту, якщо це локальний проект.
Арам Кочарян

9
Якщо ці проекти розміщені в різних сховищах git, ви можете встановити прапорець "Керувати сховищами синхронно" у налаштуваннях (Налаштування> Контроль версій> Git). IntelliJ буде підтримувати синхронізацію натискань, оновлень та вибору філій у кількох проектах.
Тім Ван Лаер

13
Для тих, хто не знайомий з IntelliJ і не знає, де знаходиться вікно "Maven Projects": верхній правий кут.
dustin.schultz

1
З версією 2017 року це інакше, зверніться до сайту jetbrains.com/help/idea/2017.1/maven-projects-tool-window.html
vikramvi

3
Тож якщо вам потрібно відкрити кілька проектів, але вони є проектами Gradle або Ant, ви все ще не пощастили. Ні, дякую ... Мені потрібно мати можливість відкрити всі 3, як дозволяють NetBeans та Eclipse. Відсутність належної робочої області є причиною №1, що я досі не використовую IJ.
Маній

216

Будь ласка, виконайте ці 2 кроки:

Крок 1 : Відкрийте "Maven Projects"

введіть тут опис зображення

Крок 2. Виберіть проект, який потрібно імпортувати:

введіть тут опис зображення


20
Малюнок вартує тисячі слів.
Neeraj Jain

3
Дякую, це було справді корисно
Дж. Адам,

3
Ця відповідь мені дуже допомагає, особливо, для використання скріншотів. Дякую.
Chaklader Asfak Arefe

1
Це відповідь, яку я шукаю. Велике спасибі :)
Джерін Куріан

1
Я не бачу варіанту в моєму випадку:2019.3 community
Марінос Ан

134

Необхідна умова

Маючи всі відповідні проекти в одному кореневому каталозі.

Кроки

1) Спочатку ви створюєте новий проект Порожній

Новий порожній проект


2) Потім ви вибираєте кореневий каталог усіх ваших проектів.

Це створить порожній проект із каталогом .idea, який просто запам'ятає організацію модулів, яку ми збираємось зробити на наступному кроці

Виберіть кореневий каталог


3) Потім у наступному вікні ви імпортуєте різні проекти у вигляді модулів

Імпортуйте проекти як модулі


4) У наступному вікні, щоб імпортувати кожен проект, просто двічі клацніть на build.gradle або pom.xml

Проект буде імпортовано як новий модуль. Виберіть файл збірки


5) Готово, тепер у вас є всі проекти, як модулі, відкриті в одному проекті IntelliJ

Результат


16
Це точно правильна відповідь на це питання. Спочатку створіть та порожній проект, а потім додайте існуючі проекти. Дякую.
хрзафер

4
у вас є рішення. Але ваш "Необхідна наявність усіх пов'язаних проектів в одному кореневому каталозі". НЕ потрібно. Я спробував для Maven проектів, і це працює добре з Intelllij версією 2017.3. Я ще не намагався зі стандартними модулями Intellij.
Піч Готьє

2
Точне рішення!
Satheesh

2
Верхня відповідь. Дякую :)
AnarchoEnte

2
Для мене працювали з Intellij Idea 2018.3 та Gradle.
incises

53

У IntelliJ 14.1.2 я зробив це так:

Виберіть File-> Project Structure-> Modules.

Виберіть +та Import Moduleвиберіть каталог свого проекту (або каталог, де існує пом) та натисніть кнопку ОК.

Виконайте наступний потік екранів і після натискання Finishви повинні побачити проект поряд із існуючим.

введіть тут опис зображення


не вдається додати такий модуль. Cannot import anything from C:/Projects/
колись інопланетянин

@everalian, у вас є pom.xml в C: / Проекти чи деінде?
Нео,

Ні, у мене немає файлу pom.xml. Тому що я використовую Gradlebuild.
колись інопланетянин

2
Це має бути прийнятим рішенням. Не у всіх проектах використовується maven.
Бабкен Варданян

34

Жодне з рішень не працювало для мене, оскільки я не працюю над проектами Maven. Є більш просте рішення. Йти до:

Файл-> Структура проекту-> Модулі.

введіть тут опис зображення

Замість додавання модуля просто натисніть третій варіант (копіювати). Перегляньте свій локальний каталог та виберіть проект, який ви хочете додати. Назва модуля розв’яжеться автоматично. Це воно.

Оновлення: Коли ви хочете знову відкрити проект для декількох підпроектів, щоб уникнути повторних кроків, як описано вище, просто перейдіть у меню Файл-> Відкрити останні -> "Ваш великий проект".


1
Так ... о так .... Це рішення, яке я шукаю. Імпорт як модуль або проект maven не створює .ideaта не створює xxx.imlфайли. Це може спричинити проблеми з плитками apache . Я використовую версію 2018.1.5. Дуже дякую
Катаклізм

Це дивно! Тільки недоліком використовується IDE лише як редактор, і все ж для перегляду та запуску потрібно перейти до потрібної папки. У когось є простий спосіб використовувати це рішення для декількох папок (скопійованих модулів) і все ж компілювати та запускати в редакторі?
Грег Хілстон

11

Щоб розгорнути @Neo відповідь: після вибору каталогу. виберіть import module from external modelі виберіть вашу модель (Maven в даному випадку).

вибрати модель

Потім перевірте keep project filesпараметр із наступного діалогового вікна. Він збереже всі файли в оригінальному каталозі.

варіанти

Ваша кінцева структура проекту буде приблизно такою.

будова

Тепер ви можете додати свій модуль як залежність до інших модулів, pom.xmlі якщо ви зміните вихідний код своїх залежностей, Intellij дбає про оновлення вашого проекту (немає потреби запускати mvnзбірку вручну для залежностей)


8
  • новий порожній проект
  • Файл -> Новий -> Модуль із існуючих джерел

6

Ви можете використовувати плагін Armory, який робить зручне перемикання між проектами. За замовчуванням ярлик для списку Project є Alt + A .

Знімок екрана списку проектів

За замовчуванням наразі відкриті проекти відображаються у верхній частині цього списку (із жирним стилем).


6

Відкрити налаштування -> зовнішній вигляд та поведінку -> Налаштування системи -> вибрати (відкрити проект у новому вікні), а потім застосувати.введіть тут опис зображення

Тоді ви могли відкривати та редагувати кілька проектів.


5
Саме цього намагається уникнути ОП. Він хоче, щоб вони були в одному вікні, всі три проекти одразу.
Саймон Форсберг

6

Для тих, хто використовує Gradle, можна також скористатися тим самим:

введіть тут опис зображення

введіть тут опис зображення

Перейдіть до: 1. Перегляд -> Інструмент Windows -> Gradle 2. Натисніть на +кнопку і додайте build.gradleфайл


Використовуєте видання Community або Ultimate Edition? Я новачок в Intellij і отримав лише CE (2019.3.3). У цьому меню немає Gradle.
мійський гризун

4

Натисніть "F4" у вікнах, які відкриють "Структура проекту", а потім натисніть значок "+" або "Alt + Insert", щоб вибрати новий проект, який потрібно імпортувати; потім натисніть кнопку ОК ...


Дякую за ключ. Було б корисно, якщо ви забули щось додати з відповіддю @ThisIsFlorianK!
Satheesh

4

За допомогою кнопки додайте проекти maven та перейдіть до папки проекту. Потім виберіть pom.xmlфайл і додайте їх до IntelliJ.

введіть тут опис зображення


1

Для людей, які не використовують maven для створення та хочуть додати новий проект (я використовую intellij 14.1.3):

  1. Клацніть правою кнопкою миші папку верхнього рівня у вікні проекту, виберіть новий -> Модуль
  2. Назвіть модуль тим самим назвою проекту, який потрібно додати
  3. У верхньому меню виберіть Файл-> Створити-> Проект. Введіть те саме ім'я, що і новий модуль, і те саме розташування папок.
  4. Відкрийте Проект та дочекайтеся, коли Intellij створить структуру проекту.
  5. Закрийте цей новий проект та відкрийте оригінальний проект, до якого був доданий модуль у кроці 2

Залежно від вашого будівельника, для його додавання до процесу збирання знадобляться додаткові кроки.

Для SBT та проекту верхнього рівня я змінив файл Build.scala для об'єднання нового проекту та додав проект у вікно проектів SBT. Більше інформації про багатопроектні версії SBT: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html


IntelliJ додала підтримку для додавання sbt модулів до проекту, і він працював дуже добре, але він, здається, зламаний з 2017 року. Ви все ще можете додати кілька модулів sbt, але коли ви оновлюєтесь, ви втрачаєте всі, крім одного.
Надер Ганбарі

1

На Intellij IDEA 2019.2, F4 + натисніть на модуль, натисніть на +, щоб додати будь-який проект із вашого жорсткого диска, над цим меню ви можете редагувати IDE, коли ви створюєте проект та інші варіанти, дуже просто



0

Я новачок у Maven і не зрозумів, як я можу працювати з місцевим проектом maven, доданим через відповідь Віктора Нордлінга і все ще маю належну залежність у файлі pom.xml. Відповідь проста: intellij спочатку переглядає ваш локально доданий модуль, і якщо його не знайти, він переходить до проекту віддалено.Ви можете перевірити це, переглянувши "зовнішні бібліотеки" під веб-переглядачем проекту, коли ви додаєте або видаляєте модуль maven.

Сподіваюсь, це допомагає комусь.



-1

Немає необхідності переміщувати цілі проекти в модуль. Випадок використання модуля трохи тонший, ніж як контейнер для проекту.

Щоб відкрити кілька проектів в одному вікні:

Файл -> Відкритий проект

Виберіть відкрити у цьому вікні.

Поставте прапорець "Додати" до поточного проекту.


1
не працює. він замінить поточний відкритий проект на те саме вікно.
колись інопланетянин

3
@everalian, на жаль, цю функцію було видалено.
БАР
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.