Skip to content
keeganwitt edited this page Sep 10, 2011 · 19 revisions

#About GMavenPlus#

##Why?##

These were some of my goals in creating this project:

  • Simplify the project for ease of future maintenance (fewer modules, flatter class hierarchies, fewer dependencies -- I'm a big fan of KISS)
  • Don't depend on any particular version of Groovy (so it can be as flexible as groovyc and reduce the needed maintenance)
  • Allow access to GroovyDoc tool through the plugin
  • Support for Groovy 1.8+
  • Be at least as configurable as the equivalent Ant task (still ongoing)
  • Breathe new life into an abandoned project that I feel is still very important

##Why not patch GMaven?##

I had a fundamentally different idea about how I wanted to access the Groovy classes. Both projects use the same classes underneath, as does groovyc (these classes are maintained by the Groovy project), but the difference was radical enough that building off of GMaven would have been tedious. I felt the plugin should be a lightweight (almost a proxy) means of providing access to the Groovy classes and this was very different than how GMaven works.

##What's so different?##

The fundamental difference is rather than having a dependency on a hard-coded version of Groovy (you could switch between branches but not specific versions), GMavenPlus loads your project's compile time classpath into itself and uses Java's Reflection API to make the calls to Groovy that it needs. This gives you more choice over which version of Groovy you use, and makes less work for me because I won't have to release a new version of the plugin every time a new release of Groovy comes out that I want to use.

##Why not just use groovyc in the AntRun Plugin?## You could. I don't think all there's an Ant task for the Execute mojo, but I'm sure you could find a way to make it happen. My objection to this is that while there are some newer build tools out there that have some advantages over Maven, Maven is well-established and has a huge userbase. Whether you love it or hate it, both Maven and Ant are here to stay and deserve first-class support.

Clone this wiki locally