根据文档,sbt forked进程应该接收当前进程的jvm设置:
默认情况下,分叉进程使用用于构建的相同Java和Scala版本以及当前进程的工作目录和JVM选项.见:http://www.scala-sbt.org/0.13/docs/Forking.html
然而,对我来说似乎并非如此.进行以下测试:
object Test { def main(args: Array[String]): Unit = { println("Conf: " + System.getProperty("config.resource")) } }
如果我使用sbt -Dconfig.resource = test.conf运行它,则会打印“Conf:test.conf”.但是一旦我在build.scala中添加了fork:= true,就打印出“Conf:null”.这对我来说意味着jvm选项实际上并未传递给分叉进程.谁能告诉我,我在这里失踪了什么?
import sbt._ import Keys._ object Build extends Build { lazy val root = (project in file(".")). settings( fork in run := true ) }