Guava is the culprit

Today I play around with testing framework Geb and Spock.

I’ve just installed in my existing Grails project. Half way through, my colleague asks me to generate the war file of the project. Hell yeah, the development procedure here is still suck. We don’t have proper deployment process. I’m planning to use Hudson later on (if I still work in this company :p )

The “grails prod war” failed with the following error message:

java.lang.NoSuchMethodError:

com.google.common.collect.Multimaps.newArrayListMultimap()

Lcom/google/common/collect/ArrayListMultimap;

It must have something to do with my newly installed plugins.

After few hours searching for solution, here are the finding:

UI Performance Plugin uses SmartSprite. SmartSprite depends on google collections

Geb plugin is using Guava.

Note that google collections dev is discontinued and merged with Guava code. The instruction in google collection homepage is to just delete the google collections jar if the guava jar is already in class path.

But it’s not as simple as deleting the jar file. The problem is that current version of smartsSpites has not been updated to use Guava. I’m looking forward to their 3.0 version, which I don’t know when.

Meanwhile, I need to disable css sprite feature from UI Performance plugin.  Here is the work around: commented out line 118 of ResourceVersionHelper.

buildSprites stagingDir

Advertisements
This entry was posted in Open Issue and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s