ChatGPT解决这个技术问题 Extra ChatGPT

IntelliJ: Working on multiple projects

We build in maven multiple projects (let's name them A,B,C). Project A uses .jar of project B which uses .jar of project C.

I am modifying codes of all A/B/C projects, (A is MVC app, B are business services and C is some shared layer).

The thing is, in Eclipse/NetBeans I can see all of them at once and it's comfortable to modify them. In IDEA though, I have to open 3 instances (or n instances) of IntelliJ IDEA.

Am I missing something? Is there better approach when using IntelliJ? This is the biggest downside of IntelliJ for me atm.

Looking through the answers to date, the basic gist I see is that IntelliJ defines what Eclipse calls "projects" as modules, and "workspaces" as projects. The idea is to ensure that modules in the same project are fairly related. So if project A depends on project B, but both are totally unrelated to project C, it would be good to open projects A and B as modules in the same IntelliJ project, while opening C in a separate project in a second IntelliJ instance. You can agree or disagree with the design, but (assuming I've correctly captured the idea) I honor the thought behind it.

W
Weslor

I think this has improved with recent versions of IntelliJ. In my current version (12.0.2), you can add any number of separate Maven projects to the same "workspace".

The simplest way I've found to do this is to click the little + icon in the "Maven Projects" window (View > Tool Windows > Maven Projects) and then select the additional pom file you want to import.


Just to add: once the Maven Project is added it will load in the Project panel if it's a local project.
If these projects are located in different git repositories, you can check 'Control repositories synchronously' in the settings (Settings > Version Control > Git). IntelliJ will keep pushes, updates and branch selection synced over the multiple projects.
For those that are new to IntelliJ and don't know where the "Maven Projects" window is: top right corner.
With 2017 version it's different, refer to jetbrains.com/help/idea/2017.1/maven-projects-tool-window.html
So if you need multiple projects open, but they're Gradle or Ant projects, you're still out of luck. No thanks... I need to be able to have all 3 open, like NetBeans and Eclipse allow. Lack of a proper workspace is the #1 reason I still don't use IJ.
T
Tho

Step 1: open "Maven Projects"

https://i.stack.imgur.com/4uGTK.png

Step 2: select the project you want to import:

https://i.stack.imgur.com/s9nMw.png


I don't see the option in my instance: 2019.3 community
Thanks! What are the advantages over adding other parts as "module" as described in the other popular answer?
after adding I need to know how to "remove" it again.
m
mrbela

Prequisite

Having all the related projects in the same root directory can be helpful.

Steps

1) First you create a new Empty project

https://i.stack.imgur.com/PTqL5.jpg

2) Then you select the root directory of all your projects.

This will create a empty project, with a .idea directory that will simply remember the module organisation we are about to do in the next step

https://i.stack.imgur.com/EDhpD.jpg

3) Then, in the next window, you import the different projects as modules

https://i.stack.imgur.com/H8Dud.jpg

4) In the next window, to import each project, simply double click on the build.gradle, or pom.xml

https://i.stack.imgur.com/KbN6q.jpg

5) Done, you now have all your projects as modules, opened on the same IntelliJ project

https://i.stack.imgur.com/q7IFs.jpg


you have THE solution. But your 'Prequisite Having all the related projects in the same root directory.' is NOT required. I tried for maven projects and it works OK with Intelllij version 2017.3. I haven't tried with intellij standard modules though.
This is what I've been doing for Maven, Gradle and SBT projects. Adding multiple SBT projects seems to be broken though for more than a year now. You can still add but when you refresh SBT projects in the sbt panel, they get messed up.
do you know what is this maven-archiver project that is added along with the module?
Worked for me with Intellij Idea 2018.3 and Gradle.
What if you have run configurations? All macros are pointing to the "true" project root, not on the root of the module you imported, which means you have to use absolute paths in your VM Options. Anyone got a solution for this? EDIT: Yes, I just used $MODULE_DIR$ for that, and it worked.
Ł
ŁukaszBachman

Yes, your intuition was good. You shouldn't use three instances of intellij. You can open one Project and add other 'parts' of application as Modules. Add them via project browser, default hotkey is alt+1


I'm doing the same: import the main project, then I import my second project using 'import module', but later than - I got "These modules have been removed from maven structure:... Do you want them to be removed from the project too?" - Then I press 'No'. But this dialog appears many times. What can I do?
@redDevil which one?
@redDevil No! This answer is more general, if you have non-maven projects this answer is better since the top voted answer simply does not cover them. The two answers tackle different situations and are equally relevant, no one is better than the other.
This is better than the "Maven only" answer but it doesn't help if you have unrelated projects that you want simultaneously visible (ex. easy access to refer to another project's code), or if you support a library which is a dependency of the project you're focused on. Extremely frustrating how IJ didn't use the Eclipse/NetBeans model here, it's the main thing preventing me from switching to IJ.
What I'd like to see in IntelliJ is not listing all the projects in the project explorer as it just makes things more complicated but I want to see a new option say "Open Project" with which is shows a smart view of my workspace and then I select my project. Currently the Open menu item displays the open dialog similar to the file system open dialog and then I have to look for the directory that I know has my project in it.
N
Neo

In IntelliJ 14.1.2, I did it like following:

Select File->Project Structure->Modules.

Select + and Import Module and select the directory of your project(or directory where pom exists) and click OK.

Follow through the next flow of screens and after you click Finish, you should see the project alongside your existing one.

https://i.stack.imgur.com/s1fCh.png


cannot add the module like this. Cannot import anything from C:/Projects/
@everalian, do you have the pom.xml in C:/Projects or elsewhere?
No I don't have pom.xml file. Because I use Gradle build.
This should be the accepted solution. Not all projects use maven.
g
gmode

None of the solutions worked for me, since I am not working on Maven projects. There is a simpler solution. Go to:

File->Project Structure->Modules.

https://i.stack.imgur.com/IVhJi.jpg

Instead of adding module, simply click the third option (copy). Browse your local directory and select the project you would like to add. Module name will resolve automatically. That's it.

Update: When you want to reopen to project with multiple sub-projects, in order to avoid re-doing steps as described above, just go to File->Open Recent->'Your Big Project'.


Yes ... oh Yes .... This is the solution that I'm looking for. Importing as maven module or project do not generate .idea and xxx.iml files. This may causes problems with apache tiles. I'm using with version 2018.1.5. Thank you very very much.
This is amazing! Only downside is using the IDE only as an editor and still having to navigate to the correct folder to compile and run. Anyone have an easy way to use this solution for multiple folders (copied modules) and still compile and run in the editor?
Stop looking around and follow this. This is the correct answer for the question.
p
pitagoras3

Since macOS Big Sur and IntelliJ IDEA 2020.3.2 you can use "open projects in tabs on macOS Big Sur" feature. To use it, you have to enable this feature in your system settings:

System Preferences -> General -> Prefer tabs [always] when opening documents

https://i.stack.imgur.com/lGW6v.png

After this step, when you will try to open second project in IntelliJ, choose New Window (yes, New Window, not This Window).

https://i.stack.imgur.com/YamKJ.png

It should result with opening new project in same window, but in the new card:

https://i.stack.imgur.com/rxBXh.png


unfortunately this feature stopped working for me. is anyone facing this issue?
It kind of works and is kind of broken. For example if I open two projects in different windows and choose File|Project structure it always shows the structure of the first project I opened even if I do this in the second window, and these modal dialogs are modal to all open windows.
a
artronics

To expand @Neo answer: after choosing your directory. select import module from external model and choose your model (maven in this case).

https://i.stack.imgur.com/mpC6A.png

Then check keep project files option from next dialog. It will keep all files in original directory.

https://i.stack.imgur.com/RIMnj.png

Your final project structure would be something like this.

https://i.stack.imgur.com/0g8LO.png

Now you can add your module as dependency to other module's pom.xml and if you change the source code of your dependencies, Intellij takes care of updating your project (there is no need to run mvn build manually for dependencies)


1
1lOtzM291W

new empty project

File -> New -> Module from Existing Sources


A
Abhishek Ransingh

For who uses Gradle can also avail the same:

https://i.stack.imgur.com/tcvIB.png

https://i.stack.imgur.com/c1NZp.png

Go to: 1. View --> Tool Windows --> Gradle 2. Click on the + button and add your build.gradle file


Are you using the Community Edition or the Ultimate Edition? I am new to Intellij and have only got CE (2019.3.3). This does not have Gradle in that menu.
R
Raymond

https://i.stack.imgur.com/yx3c8.png

Then you could open and edit multiple projects.


This is exactly what the OP is trying to avoid. He wants them in the same window, all three projects at once.
@SimonForsberg yes, but he also needs to change the settings here to run many projects in the same window that other posts don't show.
k
krock

You can use Armory plugin which makes switching between projects comfortable. The default shortcut for Project List is Alt + A.

https://i.stack.imgur.com/Ves7j.png

By default currently opened projects are displayed at the top of this list (with bold style).


Turned out to be "Not compatible with the version of your running IDE (IntelliJ IDEA 2021.2.3)". I was surprised at this.
A
Arefe

Use the button for the add maven projects and go inside the folder of the project. Then, select the pom.xml file and add them in the IntelliJ.

https://i.stack.imgur.com/miHJr.png


A
Akshay Lokur

Press "F4" on windows which will open up "Project Structure" and then click "+" icon or "Alt + Insert" to select a new project to be imported; then click OK button...


perhaps, write what the F4 suppose to do as people use key mapping and that makes it different for everyone.
d
danilo parada

To Intellij IDEA 2019.2, F4 + click on module, click to + for add any project from your HDD, above this menu yo can edit the IDE with you create the project and more options, very easy


S
SMHasnain

you can use import module option which will open it just like eclipse in the same navigator.


it says cannot open .ipr into project
J
Jenn

For people not using maven to build and wanting to add a new project (I am using intellij 14.1.3):

Right click the top level folder in the project view, select new -> Module Name the module the same name as the project to be added From the top menu select File->New->Project. Enter the same name as the new module, same folder locations as well. Open the Project, and wait for intellij to create the project structure. Close this new project, and open the original project the module was added to in step 2

Depending on your builder, additional steps will be needed to add it to the build process.

For SBT, and in the top level project I modified the Build.scala file to aggregate the new project, and added the project in the SBT projects window. More info on SBT multiproject builds: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html


IntelliJ added support for adding sbt modules to a project and it was working really nice, but it seems to be broken since 2017 versions. You can still add multiple sbt modules but when you refresh, you end up losing all but one.
d
drakonli

I am new to maven and did not understand how I could work with local maven project added through Viktor Nordling's answer and still have a proper dependency in pom.xml file. The answer is simple: intellij first looks at your locally added module and if it doesn't find one it goes to get the project remotely. You can check this by looking at "external libraries" under your project browser when you add or remove maven module.

Hope this helps anyone.


I
Ikbel

For IntelliJ Idea 2021.3.3 users, The below solution didn't work for me, although I was selecting my project main folder, I've gotten only the main and test folders imported!

Peoject Structure => Modules => Import module

The solution is:

view => tool Windows => Maven => click the + icon => add the project POM.xml file

https://i.stack.imgur.com/2UGj7.png


U
Uchephilz

I will personally advise you to put all relatable projects in a folder, then go to IntelliJ then click on Files > Open..., then search for the folder that contains the projects you want then open it.


u
user19085032

Assuming they are under the same folder, click File-Open File or Project-


As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
S
Sai Ram

"IntelliJ IDEA 2022.1.1 (Community Edition)" you have to navigate To Add Exiting Module to same window navigate "File -> New -> Module from Existing Sources" then it will allow you to select pom.xml and then click "Create" button next window then project will be added to your current workspace.

https://i.stack.imgur.com/oYEY7.png

Note :: Who ever switches from Eclipse to Intellij this is the first problem


B
BAR

There is no need to move entire projects to a module. The use case for module is a bit finer grained than as a project container.

To open multiple projects in the same window:

File -> Open Project

Select open in this window.

Check box that says add to current project.


not working. it replace the current opened project to same window.
@everalian unfortunately this feature was removed.
J
Jeremy John

As of release 2019.2, this is as easy as File->Attach Project.

🎉🎉🎉🎉🎉

https://i.stack.imgur.com/rt3Hz.png

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


Are you using the Community Edition or the Ultimate Edition? I am new to Intellij and have only got CE (2019.3.3). This does not have Attach project in that menu.
AFAICT this is PhpStorm-specific functionality: jetbrains.com/help/phpstorm/…