如何在不退出的情况下终止SBT中的运行?
我正在尝试CTRL + C,但它退出了SBT.有没有办法在保持SBT打开的同时退出正在运行的应用程序?
我使用的是SBT 0.12.0.我已经阅读了有关堆栈溢出的其他答案并遵循它们,但是它们都没有帮助,例如:
ForkRun类 - 在使用sbt期间,我没有观察到任何分叉进程JAVA_OPTS- 它已设置但是sbt的进程命令行似乎根本不使用它.sbt -J-Xmx2G将参数附加到sbt进程命令行,但旧值-Xmx1536m由sbt而不是附加参数使用.我错过了什么吗?在进行两种测试时,如何设置sbt 0.12的堆大小run?
根据这篇有用的帖子,我删除了我的帖子~/.sbtconfig,并添加了.sbtopts:
$cd myProject
$cat .sbtopts
-J-Xmx4G
-J-XX:+CMSClassUnloadingEnabled
-J-XX:MaxPermSize=4G
Run Code Online (Sandbox Code Playgroud)
然后我跑了sbt.我如何通过sbt控制台验证设置的选项.sbtopts?
SBT使用specs2和spray-testkit在我的一些较大的验收风格测试中保持内存不足.我有10个演出或RAM可用,目前我开始SBT(使用SBT附加脚本),MaxPermSize为512m,Xms为1024m,Xmx为2g.
验收测试按特定顺序贯穿客户的整个业务流程,因此将验收测试分成多个较小的测试并不容易.
任何想法如何更好地配置我的环境,或者我应该注意的问题将不胜感激.
为了它的价值,我在Ubuntu下使用Oracle Java,该项目使用Scala 2.10,sbt 0.12.2,使用specs2 1.14喷涂1.1-M7.
在测试之外运行系统时,或者在使用较小的测试时,一切都像发条一样运行.只有在较大的测试中,事情才会变得坚果.
我有一个使用SBT (v1.5.5) 构建的Scala Play Framework Web 应用程序(使用Scala v2.13.7 和Play v2.8.8)。
我的build.sbt包括以下内容:
lazy val root = (project in file("."))
.enablePlugins(PlayScala)
.settings(
// etc.
fork := true,
javaOptions ++= Seq(
"-Xms1G",
"-Xmx8G",
),
)
Run Code Online (Sandbox Code Playgroud)
但是,当我执行 时,不会为 Web 应用程序生成单独的 JVM sbt run,并且内存设置是 SBT JVM 的内存设置(-Xms1024m和-Xmx1024m)。
PlayScala插件在运行 Web 应用程序本身时是否会干扰或禁用分叉?我可以强制 Web 应用程序使用SBT中的分叉 JVM 吗?
我的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: _*)
)
Run Code Online (Sandbox Code Playgroud)
但是,当我执行时
sbt run
Run Code Online (Sandbox Code Playgroud)
并查看jconsole,我在Build.scala中设置的堆大小没有被选中.它只显示-Xmx512M.任何人都可以让我知道我们如何强迫sbt从项目构建文件中选择堆空间?
谢谢!