java - sbt汇编上的Java OutOfMemoryError

标签 java scala sbt sbt-assembly

我尝试使用某些库依赖项来启动sbt assembly
当我尝试添加

"edu.stanford.nlp" % "stanford-corenlp" % "3.5.1",
"edu.stanford.nlp" % "stanford-corenlp" % "3.5.1" classifier "models",

它以错误关闭:
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
...
Caused by: java.lang.OutOfMemoryError: Java heap space
...
at sbtassembly.Assembly$.sha1content(Assembly.scala:294)
at sbtassembly.Assembly$$anonfun$24.apply(Assembly.scala:206)
at sbtassembly.Assembly$$anonfun$24.apply(Assembly.scala:202)
...
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

当我将provided属性添加到这些库时,它可以很好地工作。

我在build.sbt上添加了选项,就像在README file of SBT assembly上提到的一样,但是没有任何变化。
assemblyOption in assembly := (assemblyOption in assembly).value.copy(cacheUnzip = false)
assemblyOption in assembly := (assemblyOption in assembly).value.copy(cacheOutput = false)
javaOptions in assembly += "-Xmx2g"

运行
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.1")
scalaVersion := "2.11.6"

感谢帮助

最佳答案

如下所示增加sbt进程的堆大小

在您的.bashrc文件中将此属性设置为永久修复程序。根据您的需要和资源编辑内存限制

export SBT_OPTS="-Xmx1024M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=2G -Xss2M  -Duser.timezone=GMT"

编辑后,请使用刷新您的控制台,
source ~/.bashrc

关于java - sbt汇编上的Java OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35197120/

相关文章:

parsing - 从 Scala 字符串中去除 HTML 标签

java - Scala中的复合设计模式?

performance - Scala 有状态 Actor ,递归调用比使用 vars 更快?

scala - 为什么 sbt 不能解析 akka-remote?

java - Oracle 行锁用于相同数据时的更新

java - Player[] 从数组更改为集合

java - protected 类成员可以像 Java 中的公共(public)类成员一样被访问

scala - 在 sbt 0.10 中为 specs2 测试配置 junitxml 输出

scala - SBT:启动非默认项目主类的命令行 'run'

java - 如何在 Android CarouselView 中删除一个页面