I wonder what is the difference between the two here:
addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.11.3" cross CrossVersion.full)
// if your project uses multiple Scala versions, use this for cross building
addCompilerPlugin("org.typelevel" % "kind-projector" % "0.11.3" cross CrossVersion.full)
My understanding was that cross CrossVersion.full add the full Scala version to the library e.g.
kind-project_2.13.4:0.11.3
and that %% adds the Scala Binary version e.g.
kind-project_2.13:0.11.3
Hence I do not understand why we need cross CrossVersion.full with both % and %%. What's the difference?
I am pretty sure they are the same.
From Overriding the publishing convention:
From More about using cross-built libraries:
So eventually all it matters is the value of
crossVersion.In order to test the
crossVersion, I created a simple task in mybuild.sbt:The output of
sbt getVersionis:As we can see, all of the modules are equivalent, except for
crossVersion, which in bothdep1, anddep2isFull(, ). Unlike the two others which areDisabled()andBinary(, ).