Tag Archives: plugin

Grails 1.3.x and plugin dependency name conflict resolution

I got this tip off of @rfletcherEW

Grails 1.3.x the plugin fails to install

Plugin something-0.2 installed

[delete] Deleting directory /Users/you/.grails/1.3.9/projects/myProject/resources

Plugin /Users/you/.ivy2/cache/org.somethingGroup/plugin/jars/something-0.2.jar is not a valid Grails plugin. No plugin.xml descriptor found!

The reason

You want to use plugin something-0.2 and it contains jar something-0.2.jar which is the same name as the plugin.  The dependency management system cannot cope with this in 1.3.x  This has been fixed in 2.0 but for people running 1.3.x it still causes issues.

The Work Around

It is a bit dirty it just involves creating a new plugin with a different name

  1. Clone the project.  Most of them are on github anyway.
  2. Get the right branch or version from the commit logs.
  3. Change the name of the  class SomethingGrailsPlugin to be different from its required dependencies.  E.G: class SomethingFishGrailsPlugin
  4. Compile the plugin.
  5. Package the plugin
  6. Deploy the plugin into your maven mirror.  If you don’t no one can build your project as they will not find your plugin, and if you delete your ivy cache you lose all your hard work.
  7. Push the source into your source control.
  8. Document what you have done to your project readme.md
  9. Push to migrate from 1.3.x as soon as possible to 2.x and remove your plugin and use the full version of the plugin again.
  10. If you need to upgrade your plugin you have to do all those steps again.