当尝试使用 sbt-proguard 插件为我的项目组装一个 jar 时,我总是得到一个Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
我尝试增加 sbt 的堆空间,但结果证明 proguard 插件产生了自己的 java 进程并且-Xmx256M
参数硬编码。除了更改 proguard 代码本身之外,我不知道如何更改它。
我在 JDK 7 上使用 sbt-proguard 插件 0.2.1 和 sbt 0.12.3 和 Scala 2.10.1
我已经尝试过设置javaOptions in proguard := Seq("-Xmx2G")
,javaOptions in proguard += "-Xmx2G"
但插件似乎忽略/覆盖了这个:
> ps aux|grep java
kaeser 47084 105.1 1.1 2927540 94440 s000 R+ 10:07AM 0:05.52 /usr/bin/java -Xmx256M -cp /Users/kaeser/.ivy2/cache/net.sf.proguard/proguard-base/jars/proguard-base-4.9.jar proguard.ProGuard -include /Users/kaeser/Documents/workspace/pipeline-runner/target/scala-2.10/proguard/configuration.pro
kaeser 45087 0.0 6.3 5312012 531028 s000 S+ 6:03PM 1:24.88 /usr/bin/java -Xmx2G -Xms512M -Xmx2G -Xss1M -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -Xshare:off -jar /usr/local/Cellar/sbt/0.12.3/libexec/sbt-launch.jar
我如何将 Java 选项传递给 proguard 插件,或者以其他方式解决这个问题?