如何在sbt shell中设置子项目的设置(不使用项目命令)?

Dal*_*and 4 scala sbt

在sbt shell中如何设置子项目的设置?

我知道我可以project subproject,然后set key := value,但我不希望有保持开关项目.理想情况下与以下内容不同:

set key in subproject := value
Run Code Online (Sandbox Code Playgroud)

lpi*_*ora 6

我认为问题在于您已经定义了项目build.sbt,并且它们似乎在sbt控制台中不可见.至少在sbt的当前版本中 - 看到这个问题,这个问题实际上是在几天前解决的(!)

我找到了两种克服这种限制的方法.

在项目ID周围使用引号

set version in "projectId" := "some-version"
Run Code Online (Sandbox Code Playgroud)

在project/Build.scala文件中创建完整的构建定义

使用以下构建定义文件build/Build.scala:

import sbt._
import Keys._

object Build extends Build {
  lazy val projectA, projectB = project
}
Run Code Online (Sandbox Code Playgroud)

你可以set version in projectA := "1.42-SNAPSHOT按预期的效果执行.

此外,您可以只build/Build.scala包含项目定义,其余配置包含build.sbt每个子模块.它的效果非常好set.