将系统属性传递给`sbt console`?

Kev*_*ith 1 scala system-properties sbt

借用这个有用的答案,我试图传递-Dfoo=barsbt console.

鉴于SBT项目只有build.sbt:

$cat build.sbt
scalaVersion := "2.11.8"

fork := true
Run Code Online (Sandbox Code Playgroud)

我试过:

$sbt '; set javaOptions += "-Dfoo=bar" ; console'

scala> sys.props.get("foo")
res0: Option[String] = None
Run Code Online (Sandbox Code Playgroud)

但是,我曾预料到Some("bar")而不是None给出这个set ...论点.

但是,使用sbt ... run按预期工作:

$cat src/main/scala/net/Main.scala 
package net

object Main {
       def main(args: Array[String]): Unit = 
           println("sys.props.get('foo'): " + sys.props.get("foo"))
}

$sbt '; set javaOptions += "-Dfoo=bar" ; run'
[info] Running net.Main 
[info] sys.props.get('foo'): Some(bar)
Run Code Online (Sandbox Code Playgroud)

我如何foo=bar作为系统属性传递给console

Dal*_*and 6

run叉子,但console不是,如此简单sbt -Dfoo=bar console

如果需要,你可以设置它:

  • 在SBT shelleval sys.props("foo") = "bar"
  • 在REPL(console)中sys.props("foo") = "bar"
  • build.sbt...val setFoo = sys.props("foo") = "bar"