How to handle "[ERROR] Exception in thread "main" java.lang.OutOfMemoryError: Java heap space" in JENKINS?
How to handle "[ERROR] Exception in thread "main" java.lang.OutOfMemoryError: Java heap space" in JENKINS?
我一直在 Jenkins 上构建 GWT war 文件。在特定的 "job" 中,我遇到了一个错误 [ERROR] Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
。作为解决方案,我包含了一个值为 -Xms512m -Xmx1024m -XX:MaxPermSize=512m
的环境变量 "MAVEN_OPTS"。仅供参考,我还尝试了 'echo' MAVEN_OPTS 命令提示符,它显示的值与我在环境变量中给出的值相同。
pom.xml 中的 MAVEN 编译器插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<executable>${env.JAVA_HOME}/bin/javac</executable>
<fork>true</fork>
<verbose>true</verbose>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
**完整错误:**
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13:51.518s
[INFO] Finished at: Thu Jan 29 13:06:25 IST 2015
[INFO] Final Memory: 17M/989M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:gwt-maven- plugin:2.4.0:compile
(default) on project dpgwtwebapplication: Command [[
[ERROR] C:\Program Files\Java\jdk1.7.0_04\jre\bin\java -Xmx512m -classpath "C:\U
同样在 mvn.bat 文件中,MAVEN_OPTS 的值显示为 -Xmx512m
,您可以在最后的完整错误中注意到。
问题是您正在按照 maven-compiler-plugin 中的配置分叉编译器。您应该像下面这样定义内存参数:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<fork>true</fork>
<meminitial>128m</meminitial>
<maxmem>512m</maxmem>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
我想问题不是 java 编译过程的内存减少,而是 gwt 编译器的内存减少。在这里显着增加内存:
org.codehaus.mojo
gwt-maven-插件
...
我一直在 Jenkins 上构建 GWT war 文件。在特定的 "job" 中,我遇到了一个错误 [ERROR] Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
。作为解决方案,我包含了一个值为 -Xms512m -Xmx1024m -XX:MaxPermSize=512m
的环境变量 "MAVEN_OPTS"。仅供参考,我还尝试了 'echo' MAVEN_OPTS 命令提示符,它显示的值与我在环境变量中给出的值相同。
pom.xml 中的 MAVEN 编译器插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<executable>${env.JAVA_HOME}/bin/javac</executable>
<fork>true</fork>
<verbose>true</verbose>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
**完整错误:**
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13:51.518s
[INFO] Finished at: Thu Jan 29 13:06:25 IST 2015
[INFO] Final Memory: 17M/989M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:gwt-maven- plugin:2.4.0:compile
(default) on project dpgwtwebapplication: Command [[
[ERROR] C:\Program Files\Java\jdk1.7.0_04\jre\bin\java -Xmx512m -classpath "C:\U
同样在 mvn.bat 文件中,MAVEN_OPTS 的值显示为 -Xmx512m
,您可以在最后的完整错误中注意到。
问题是您正在按照 maven-compiler-plugin 中的配置分叉编译器。您应该像下面这样定义内存参数:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<fork>true</fork>
<meminitial>128m</meminitial>
<maxmem>512m</maxmem>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
我想问题不是 java 编译过程的内存减少,而是 gwt 编译器的内存减少。在这里显着增加内存: org.codehaus.mojo gwt-maven-插件 ...