GWT プラグイン (gwt-maven) を実行する Maven ビルドがあります。残念なことに、メモリが不足しています。
Maven 自体にさらにヒープを与える必要がありますか、それとも GWT にさらにヒープを与える必要がありますか? pom.xml ファイルにこれを指定する方法はありますか?
GWT プラグイン (gwt-maven) を実行する Maven ビルドがあります。残念なことに、メモリが不足しています。
Maven 自体にさらにヒープを与える必要がありますか、それとも GWT にさらにヒープを与える必要がありますか? pom.xml ファイルにこれを指定する方法はありますか?
gwt-maven-plugin の構成タグの下に extraJvmArgs タグを追加します。
例 -
<!-- GWT Maven Plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwtVersion}</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<version>${gwtVersion}</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>${gwtVersion}</version>
</dependency>
</dependencies>
<!-- JS is only needed in the package phase, this speeds up testing -->
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<!-- Plugin configuration. There are many available options, see gwt-maven-plugin
documentation at codehaus.org -->
<configuration>
<runTarget>app.html</runTarget>
<!-- Turning This on after understanding soyc and when deferredjs count is 48.cache.js -->
<!-- https://developers.google.com/web-toolkit/articles/fragment_merging -->
<fragmentCount>25</fragmentCount>
-->
<!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) -->
<!-- Turn This on for generating soyc. This does not work if closure compiler is turned on.-->
<!-- Start Generating SOYC -->
<compileReport>true</compileReport>
<compilerMetrics>true</compilerMetrics>
<soycDetailed>true</soycDetailed>
<!-- End Generating SOYC -->
<disableCastChecking>true</disableCastChecking>
<disableClassMetadata>true</disableClassMetadata>
<enableClosureCompiler>true</enableClosureCompiler>
<optimizationLevel>9</optimizationLevel>
<style>${gwt.style}</style>
<module>${gwtModule}</module>
<encoding>${project.build.sourceEncoding}</encoding>
<strict>true</strict>
<logLevel>INFO</logLevel>
<copyWebapp>true</copyWebapp>
<hostedWebapp>
${project.build.directory}/${project.artifactId}
</hostedWebapp>
<extraJvmArgs>-Xmx896M -Xms896m -XX:PermSize=64m -XX:MaxPermSize=128m</extraJvmArgs>
<!-- <extraJvmArgs>-Xmx896M -Xms896m -XX:PermSize=64m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -server</extraJvmArgs> -->
</configuration>
</plugin>
extraJvmArgs
オプションを設定する必要があると思います。
大規模な GWT プロジェクトでこのエラーが発生しました。メモリが不足しているときにおそらく表示されるエラーは次のとおりです。
[ERROR] OutOfMemoryError: Increase heap size of lower gwt.jjs.maxThreads
java.lang.OutOfMemoryError: Java heap space
このオプションは、環境変数extraJvmArgs
と組み合わせて設定する必要があります (これは考えられる説明です)。また、同時コンパイル スレッドの数を減らすために Javaオプションを設定しました (x を 1 に設定しましたが、うまくいくものを見つけるためにそれをいじることができます)。MAVEN_OPTS
-Dgwt.compiler.localWorkers=x
extraJvmArgs オプションで使用する設定の例については、この投稿を参照してください。
プラグイン要素の構成に extraJvmArgs オプションを直接追加する必要がある場合があることに注意してください - https://stackoverflow.com/a/5822929/157605を参照してください。