如何在运行应用程序或测试用例时将JVM选项传递给SBT?

Dav*_*gen 21 jvm scala sbt

我想在运行我的应用程序或通过SBT测试应用程序时指定JVM选项.具体来说,我需要能够为JVM提供-Djava.security.policy参数,以便我的策略被加载并用于测试.

我怎么能用SBT做到这一点?

Von*_*onC 11

使用xsbt,您可以在分叉的JVM中运行测试(因为" 运行项目代码 "中提到的原因之一).

如果你使用分叉的jvm:

指定仅影响主要或测试运行任务的配置:

scala javaOptions in (Test,run) += "-Xmx8G" 
Run Code Online (Sandbox Code Playgroud)

您应该能够为该JVM指定任何其他选项javaOptions.


OP大卫Eagen报道,以下配置起先不工作,不是因为SBT的选择,但由于路径:

lazy val escacheServer = 
  Project( "escache-server", 
           file("server"), 
           settings = buildSettings ++ Seq(resolvers ++= 
                        Seq(scala_tools_snapshots, typesafe_repo), 
                        libraryDependencies ++= escacheServerDeps, 
                        javaOptions in run += "-Djava.security.policy=jini.policy", 
                        fork in run := true 
                      ) 
         ).dependsOn(escache) }
Run Code Online (Sandbox Code Playgroud)

看起来我的问题是jini.policy在当前目录中找不到的.
我设置完整路径,现在它运行.