One thing we struggle with on our project is the relationship between our ide build and maven build. One of the great benefits of intellij idea, for us, is its excellent support for Maven. As long as we keep our maven build fairly simple (a good practice in itself) we're able to maintain one set of project files for both CI/deployment and our development environment. We also have a lot of flex code which is built with flexmojos which again has good support from IDEA. For the most part we're able to rely on the one set of files for basic development and on-boarding of new developers.
A few things we have difficulty with:
- We checkin and share our IDE project files. I want to avoid churn on IDEA project files cluttering up our SCM history so we keep project files in a separate repo. The downside is that it's difficult to work on an older revision of the app unless we remember to tag the development repo at the same time as our code repo.
- I like the idea of having one set of files that can be used for both the portable build and the development environment. However, there is some mixing of concerns and the portable build often isn't expressive enough to configure the development environment.
- It seems to be all or nothing when using maven projects in IDEA. It would be nice to have a clear separation between the portion of the IDE project that is driven by the pom, vs. the portion which is layered on top to provide a better experience for the developer.
It would be interesting to hear what other people's thoughts / experiences are.