Go CD とgocd-sbt-pluginを使用して、SBT で Java+Scala マルチモジュール プロジェクトを構築しています。しかし、java.lang.OutOfMemoryError: Java heap space
モジュールをコンパイルしてパッケージ化しようとすると、メモリが不足します ( )。
Jenkins CI では、SBT プラグインにより、ビルド アクションに JVM フラグと sbt フラグを追加するオプションが提供されます。現在、これらの JVM フラグを使用しています。
-Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Xss2M
Go のドキュメントで、または上記の引数を「追加オプション」テキストボックスに入れようとしても、答えが見つかりませんでした。
後者を試したところ、次のスタックトレースが得られました。
15:02:23.288 [info] Compiling 54 Scala sources and 3495 Java sources to /gocd/var/lib/go-agent/pipelines/de/component/build/scala-2.11/classes...
15:04:31.744 java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
15:04:31.744 at java.util.concurrent.FutureTask.report(FutureTask.java:122)
15:04:31.744 at java.util.concurrent.FutureTask.get(FutureTask.java:192)
...
15:04:31.744 at xsbt.boot.Boot.main(Boot.scala)
15:04:31.744 Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
15:04:31.744 at java.util.jar.Attributes.read(Attributes.java:394)
15:04:31.744 at java.util.jar.Manifest.read(Manifest.java:199)
...
15:04:31.744 at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373)
15:04:31.744 [error] java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
15:04:31.744 [error] Use 'last' for the full log.
15:04:31.760 [error] Expected key
15:04:31.760 [error] Expected '*'
15:04:31.760 [error] XX:+CMSClassUnloadingEnabled
15:04:31.760 [error] ^
15:04:31.858 Error: Interaction with plugin with id 'sbt.task.plugin' implementing 'task' extension failed while requesting for 'execute'. Reason: [Unsuccessful response from plugin. Plugin returned with code '500' and the following response: '{"exception":null,"success":false,"message":"Build failure"}']
15:04:31.865 [go] Current job status: failed.
Jenkins ビルドが成功するこれらのフラグを使用していないため、タスクはまだ失敗していると思います。上記の JVM フラグを Go SBT タスクに渡すことができる場所を誰か指摘できますか?