借用这个有用的answer,我尝试将-Dfoo=bar
传递给sbt console
。
鉴于SBT项目只有build.sbt
:
$cat build.sbt
scalaVersion := "2.11.8"
fork := true
我试过了:
$sbt '; set javaOptions += "-Dfoo=bar" ; console'
scala> sys.props.get("foo")
res0: Option[String] = None
但是,考虑到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)
如何将foo=bar
作为系统属性传递给console
?
答案 0 :(得分:5)
run
分叉但console
没有,所以只是sbt -Dfoo=bar console
如果需要,您可以设置它:
shell
中eval sys.props("foo") = "bar"
console
的REPL(sys.props("foo") = "bar"
)中的build.sbt
val setFoo = sys.props("foo") = "bar"
答案 1 :(得分:1)
我可以使用控制台获取系统属性,其中包含以下内容:
sbt console -Dturkey=fried
scala> sys.props.get("turkey")
res1: Option[String] = Some(fried)