5

After banging my head against https://github.com/google/guice/issues/846 for over an hour, I realized that I have the Guice library provided by two different jars: guice-4.0-beta5.jar and sisu-guice-3.1.3-no_aop.jar.

Gaahh...

The second one is incompatible with Guava 18, and if loaded, causes access errors when using Guava.

I am creating an SBT plugin that has no dependencies, exception for the ones added implicity by sbtPlugin := true.

The dependency tree (my plugin is com.github.pauldraper.playclosure:sbt-plugin):

> what-depends-on org.sonatype.sisu sisu-guice 3.1.3
[info] org.sonatype.sisu:sisu-guice:3.1.3
[info]   +-org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5
[info]     +-org.apache.maven:maven-core:3.2.2
[info]     | +-org.vafer:jdeb:1.3
[info]     |   +-com.typesafe.sbt:sbt-native-packager:0.7.4
[info]     |     +-com.typesafe.play:sbt-plugin:2.3.7
[info]     |       +-com.github.pauldraper.playclosure:sbt-plugin:0.0-SNAPSHOT
[info]     |       | +-default:project_2.10:0.1-SNAPSHOT [S]
[info]     |       | 
[info]     |       +-default:project_2.10:0.1-SNAPSHOT [S]
[info]     |       
[info]     +-org.apache.maven:maven-plugin-api:3.2.2
[info]       +-org.apache.maven:maven-core:3.2.2
[info]       | +-org.vafer:jdeb:1.3
[info]       |   +-com.typesafe.sbt:sbt-native-packager:0.7.4
[info]       |     +-com.typesafe.play:sbt-plugin:2.3.7
[info]       |       +-com.github.pauldraper.playclosure:sbt-plugin:0.0-SNAPSHOT
[info]       |       | +-default:project_2.10:0.1-SNAPSHOT [S]
[info]       |       | 
[info]       |       +-default:project_2.10:0.1-SNAPSHOT [S]
[info]       |       
[info]       +-org.vafer:jdeb:1.3
[info]         +-com.typesafe.sbt:sbt-native-packager:0.7.4
[info]           +-com.typesafe.play:sbt-plugin:2.3.7
[info]             +-com.github.pauldraper.playclosure:sbt-plugin:0.0-SNAPSHOT
[info]             | +-default:project_2.10:0.1-SNAPSHOT [S]
[info]             | 
[info]             +-default:project_2.10:0.1-SNAPSHOT [S]
[info]             

So this terrible dependency comes transitively through sbt-plugin.

Ideally, I wouldn't have to require the end users of the plugin muck around with excludes.

How can I have my plugin so that it excludes this dependency, and doesn't create this problem?

Tunaki
  • 132,869
  • 46
  • 340
  • 423
Paul Draper
  • 78,542
  • 46
  • 206
  • 285

0 Answers0