I have been working on a project that had been shared with Eclipse users for the last 10 years. Finally, it was possible to convince them to move to IntelliJ. That was a good chance to update the project structure. The project uses an IPR file that references module files that are linked with Eclipse .classpath files. And what can I say: the experience has unfortunately been abysmal.
Here is what I encountered:
- I tried to change module storage from Eclipse format to IntelliJ iml format. That completely kills 2021.1 and cripples 2020.3. (IDEA-266964, IDEA-266962). It also looses module dependencies which causes massive manual work to fix it.
- I tried to move my iml files into the directory of the module. IDEA does not update the reference in the IPR file (IDEA-266988). Of course, I can do that manually but then I would also need to update all references to external libraries as that move operation changes their relative path.
- I tried converting the project from .ipr to .idea. The result was an empty project without any modules. I have not filed an issue so far.
- There is plenty of funny things going on while working together with coworkers. There are DB type settings that get removed and added again for files that even aren't part of the project anymore. Removing shared Run configurations in the IPR will readd them on another machine after a Git update.
- When editing .gitignore files there is a warning that some to the directory that should be excluded actually aren't. When I choose to view those directories, they belong to modules that have been deleted weeks ago and there seems to be no way to find where those references are coming from.
- IDEA sometimes does not seem to reload project files after Git update operation properly. We now terminate IDEA after each update operation to be sure.
- External changes to project files are mostly not picked up properly. Changing project files in the editor requires at least closing the project before doing so (better terminating IDEA). Otherwise, changes may silently be overwritten by IDEA.
- After Git updates that moved classes around, there are phantom errors. That is, there are classes showing up in red (as missing) but the project compiles fine. Workaround: close and reopen project. If that does not help, a reindex project is required. I have been using IDEA since version 2.6 and have not ever used Invalidate Caches as often as it seems necessary with 2021.1. Coworkers that have more Gradle based projects are off even worse.
There is plenty more that's shady that I have noticed but wasn't able to narrow down and distill into issues (which takes a huge amount of time). I know that the cool kids all use Gradle nowadays but your native project configuration has been around for ages and simply should work in the best Java IDE on this planet.
If that were a small project, I would just recreate it from scratch. But this is project with dozens of modules and far more external dependencies. It's just not possible to spend a day on redoing all that setup.
Please look into improving the quality of that central component of IDEA. It really does not make a good impression on users!