scalaVersion.value
is context-dependent. So in Defaults.scala
it's */*:scalaVersion
from appConfiguration.value.provider.scalaProvider
. It's the version used to compile your project's definition, including your build.sbt
file (sbt 0.13.7
uses 2.10.4
scala-compiler to compile your project definitions). And that the only way as your project's definitions (including scalaVersion
) isn't compiled yet when Defaults
executed and crossScalaVersions
defined. So, */*:crossScalaVersions
depends on */*:scalaVersion
not proj/*:scalaVersion
.
Just compare Provided by
with explicit scalaVersion := 2.11.4
inside build.sbt
:
> inspect scalaVersion
[info] Setting: java.lang.String = 2.11.4
[info] Description:
[info] The version of Scala used for building.
[info] Provided by:
[info] {file:/Users/user/dev/proj/}proj/*:scalaVersion
[info] Defined at:
[info] /Users/user/dev/proj/build.sbt:1
[info] Reverse dependencies (D=derives):
[info] *:allDependencies
[info] D *:scalaBinaryVersion
[info] *:libraryDependencies
[info] *:scalaInstance
[info] *:crossScalaVersions
[info] *:update
[info] Delegates:
[info] *:scalaVersion
[info] {.}/*:scalaVersion
[info] */*:scalaVersion
[info] Related:
[info] */*:scalaVersion
And without one (just empty project):
> inspect scalaVersion
[info] Setting: java.lang.String = 2.10.4
[info] Description:
[info] The version of Scala used for building.
[info] Provided by:
[info] */*:scalaVersion
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:232
[info] Reverse dependencies:
[info] *:allDependencies
[info] *:libraryDependencies
[info] *:update
[info] *:scalaInstance
[info] Delegates:
[info] *:scalaVersion
[info] {.}/*:scalaVersion
[info] */*:scalaVersion
[info] Related:
[info] */*:scalaVersion
So, you just need to redefine */*:scalaVersion
in your build.sbt
:
scalaVersion in GlobalScope := "2.11.2"