我的Build.
scala文件内容.
val commonSettings = Seq( version := "1.0.0", organization := "com.collective", scalaVersion := "2.11.4", scalacOptions ++= List( "-encoding", "UTF-8", "-target:jvm-1.7", "-feature", "-unchecked", "-deprecation", "-Xlint", "-Xfatal-warnings" ), resolvers ++= Seq( "ConJars" at "http://conjars.org/repo" ), javaOptions in run += "-Xms256M -Xmx2G -XX:MaxPermSize=1024M -XX:+UseConcMarkSweepGC" ) lazy val segmentFetcher = Project("segments-fetcher", file(".")) .settings(commonSettings: _*) )
但是,当我执行时
sbt run
并查看jconsole,我在Build.scala中设置的堆大小没有被选中.它只显示-Xmx512M.任何人都可以让我知道我们如何强迫sbt从项目构建文件中选择堆空间?
谢谢!
如果要更改堆大小,则需要告诉sbt为 fork another JVM(顺便说一下,这适用于任何JVM选项).您可以使用fork设置来执行此操作:fork in run := true
此外,您要确保您的选项已正确分隔(sbt无法执行其他解析):
javaOptions in run ++= Seq( "-Xms256M", "-Xmx2G", "-XX:MaxPermSize=1024M", "-XX:+UseConcMarkSweepGC")
或者,您可以在sbt runner中设置堆大小.如果您使用普通sbt,则可以直接修改启动器脚本.如果您使用的是sbt-extras,则可以使用-J标志将参数传递给JVM:
sbt -J-Xmx2G # etc.
精彩评论