IDEs are an integral part of a Java developer's tool chain and workflow. However, manually setting up an IDE to correctly identify the project structure and dependencies for any moderately sized project is not an easy task.
Checking-in IDE-specific files or directories such as
.iml, is not a good idea. We know that some still do it because it's hard to generate the IDE file manually every time someone checks the project out of the version control system. However, checking in such files creates problems as they eventually go out of sync from the main build file. Also, this forces the whole team to use the same IDE and manually update the IDE files whenever there is a change in the build.
How nice would it be if we could just check-in only those files that are necessary for a project to be built independent of IDE and let our build system generate a file specific to our favorite IDE? Our wish is granted...