Why is Scala Guice 4.1.0 is selected even though no one depends on it

Viewed 167

I added the plugin

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2")

and ran the sbt dependencyTree command

I see this output

[warn]  * net.codingwell:scala-guice_2.11:4.1.0 is selected over 4.0.1
[warn]      +- com.foo.bar:bar-baz:0.8.869            (depends on 4.0.1)
[warn]      +- default:finatraflare_2.11:1.0                      (depends on 4.0.1)
[warn]      +- com.twitter:inject-core_2.11:2.13.0 ()             (depends on 4.0.1)
[warn] 

So .... everyone depends on 4.0.1 then why is 4.1.0 being chosen?

I searched the entire output to see if there is a string like (depends on 4.1.0) but there is no one.

Down below I see many libraries being evicted by the 4.1.0 version like

 com.google.code.findbugs:jsr305:3.0.1 is selected over {1.3.9, 2.0.1}
[warn]      +- com.twitter:util-cache_2.11:7.1.0 ()               (depends on 2.0.1)
[warn]      +- com.twitter:finagle-core_2.11:7.1.0 ()             (depends on 2.0.1)
[warn]      +- net.codingwell:scala-guice_2.11:4.1.0              (depends on 2.0.1)
[warn]      +- com.twitter:util-stats_2.11:7.1.0 ()               (depends on 2.0.1)
[warn]      +- com.google.guava:guava:23.0                        (depends on 1.3.9)

By reading this output ... I cannot understand what caused the verion 4.1.0 to be selected.

When I run my code. I get an error

 1) Error injecting constructor, java.lang.NoSuchMethodError: 
net.codingwell.scalaguice.InternalModule$class.bind(Lnet/codingwell/s
calaguice/InternalModule;Lscala/reflect/Manifest;)Lnet/codingwell/
scalaguice/Sc alaModule$ScalaAnnotatedBindingBuilder;

The above error seems to suggest that I have the wrong version of scalaguice somewhere. but I am not able to find out who.

0 Answers
Related