Scala 为什么交叉尺度厌恶不是尺度厌恶?
构建.sbtScala 为什么交叉尺度厌恶不是尺度厌恶?,scala,sbt,cross-build,Scala,Sbt,Cross Build,构建.sbt scalaVersion := "2.11.4" 项目/构建.属性 sbt.version=0.13.7 然后 似乎crossscalaraversions应该是List(2.11.4) 看看SBT,我也是这么想的 crossScalaVersions := Seq(scalaVersion.value) 为什么crossscalaraversion不对应于scalaraversion?scalaraversion。值取决于上下文。所以在Defaults.scala中,它是*
scalaVersion := "2.11.4"
项目/构建.属性
sbt.version=0.13.7
然后
似乎crossscalaraversions
应该是List(2.11.4)
看看SBT,我也是这么想的
crossScalaVersions := Seq(scalaVersion.value)
为什么
crossscalaraversion
不对应于scalaraversion
?scalaraversion。值
取决于上下文。所以在Defaults.scala
中,它是*/*:scalaVersion
来自appConfiguration.value.provider.scalaProvider
。它是用于编译项目定义的版本,包括build.sbt
文件(sbt0.13.7
使用2.10.4
scala编译器编译项目定义)。当执行默认值
并定义交叉缩放
时,作为项目定义(包括scalaVersion
)的唯一方法尚未编译。因此,*/*:crossscalaraversion
取决于*/*:scalaraversion
而不是proj/*:scalaraversion
只需将提供的与显式scalaversation:=2.11.4
内部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
scalaVersion in GlobalScope := "2.11.2"
没有一个(只是空项目):
因此,您只需要在build.sbt
中重新定义*/*:scalaVersion
:
> 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
scalaVersion in GlobalScope := "2.11.2"
链接到的代码是sbt的默认值。您的项目中有交叉缩放选项:=列表(…)
吗?@Marth,没有。那么(我的项目)的默认值是从哪里来的呢?@Marth,我添加了inspect
,它显示了来自那里的值。他们极大地改变了API-所以现在他们使用宏.value
来计算键,而不是GlobalScope中的交叉缩放