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

时间:2014-07-23 08:40:22

标签: scala sbt

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

我知道我可以project subproject然后set key := value,但我不想继续转换项目。理想情况下与以下内容没有什么不同:

set key in subproject := value

1 个答案:

答案 0 :(得分:6)

我认为问题在于您已在build.sbt中定义了项目,并且它们似乎在sbt控制台中不可见。至少在当前版本的sbt中 - 请参阅this issuethis issue,这些事实上几天前已经修复了(!)

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

在项目ID

周围使用引号
set version in "projectId" := "some-version"

在project / Build.scala文件

中创建完整的构建定义

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

import sbt._
import Keys._

object Build extends Build {
  lazy val projectA, projectB = project
}

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

此外,您可以让包含项目定义的build/Build.scala和其余配置在每个子模块的build.sbt中。它与set完全正常。