Sunday, February 13, 2011

Unbridled IDE Anger

It's midnight as I type this. I have spent the past four hours attempting edit a single freaking Grails project within an IDE. Any IDE.

I switched to NetBeans almost nine months ago and I've been a very happy NetBean'er. Everything worked out of the box with minimum futz and complied quite nicely with accepted standards. Maven 2, Subversion, minimalist Java runtimes and Spring hummed along without complaint. Looking to accelerate development of simple maintenance web applications I turned to Grails... and then things started to fall apart.

Grails actually has some great tooling within NetBeans, but one bug has been a huge thorn in my side. An acknowledged bug causes Grails projects to not notice any external libraries, even if they are your own and open within NetBeans. This is beyond annoying because features like syntax highlighting, error detection and auto-completion go completely awry. The bug is reportedly resolved in the upcoming version 7 of NetBeans, however I installed Beta 7 and the problem continues to occur.

Not being beyond switching back to Eclipse, I decided to try Spring's own IDE. Spring's IDE is a slightly customized version of Eclipse, with a bit nicer front-end dashboard for plugins and Spring product support built-in. Since Grails is a Spring project I figured it would work well.... and indeed it did. My other projects... well...

SpringSource Tool Suite uses the latest beta of Maven 3 for dependency resolution... and you cannot change that. Yes, you can specify alternate Maven installations, but STS completely ignores those settings for dependency resolution. Maven 3 will also refuse to load transient dependencies if it doesn't like your POM as well - which means that you simply cannot load your application with all required libraries if your Maven 2 pom.xml is rejected by Maven 3.

I could go back to my old Eclipse installation... and then I need to find a way to load the Grails plugins into the old Eclipse install. That sounds like loads of fun.

So now I have three choices:
  1. Use NetBeans and have absolutely no auto-complete or strongly typed variables
  2. Use SpringSource Tool Suite and re-do all my Maven 2 POMs
  3. Use my old Eclipse installation and try to install the necessary Spring plugins
Now, bear in mind I've burned four hours trying to STS to work. Another four to get NetBeans to work. How interested do you think I am at trying to get MORE plugins shoved into my old Eclipse installation?

I'm cheezed because NetBeans Grails support is rendered nearly useless by a fairly blatant bug. And I'm cheezed because Eclipse continues to be an albatross to every normal project I have. IntelliJ IDEA - you might just be next.

Until then, I've got a Grails app to blindly maintain while NetBeans continues to yell about imports not being found.