2

运行 Apache Sling 的 maven 构建时出现以下错误,即使使用推荐的堆大小:

main:
     [echo] **************** WARNING (SLING-443/SLING-1782) ******************************
     [echo] On most platforms, you'll get OutOfMemoryErrors when building unless you set
     [echo] on 32bit platforms: MAVEN_OPTS="-Xmx256M -XX:MaxPermSize=256M", see SLING-443
     [echo] on 64bit platforms: MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M", see SLING-1782
     [echo] ******************************************************************************
[INFO] Executed tasks
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ sling-launchpad-webapp-archetype ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/thomasf/slingDownload/sling/maven/archetypes/launchpad-webapp/src/test/resources
[INFO] Copying 3 resources
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.7:check (default) @ sling-launchpad-webapp-archetype ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java15:1.0
[ERROR] Java heap space -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/OutOfMemoryError

果然我的堆大小和他们在项目主页上推荐的一样:

echo $MAVEN_OPTS
-Xmx512M -XX:MaxPermSize=512m

我怀疑原因是 maven 正在分叉,并且子进程中的 jvm 没有相同的堆大小 - 但是我无法从控制台输出中识别出哪个插件正在分叉。

任何想法表示赞赏!谢谢

4

3 回答 3

0

您可以尝试增加内存:

MAVEN_OPTS=-Xmx1024M -XX:MaxPermSize=512m

或使用 JAVA_OPTS 设置它(但这会影响执行用户的任何 JVM 进程!)因此子进程也将具有以下设置:

JAVA_OPTS=-Xmx512M -XX:MaxPermSize=512m

尝试首先使用 MAVEN_OPTS 增加内存。

问候

维尔纳

于 2011-11-15T17:33:46.463 回答
0

即使你使用JAVA_OPTS环境变量也没有足够的内存?由于这会影响任何正在运行的虚拟机,因此新生成的进程也应该具有这些设置。

或者尝试使用1200M的内存?也许没有太多堆内存丢失,如果你运行 64 位 JVM,你可能只需要更多......有趣的问题。

我将使用 -X 运行构建,也许它是在堆错误之前执行的插件/目标。希望可以配置该插件。

于 2011-12-08T13:22:04.870 回答
0

您可以检查计算机的环境变量,是否MAVEN_OPTS声明了变量。如果不声明为

MAVEN_OPTS=-Xmx1024M -XX:MaxPermSize=512m

否则,如果它已经声明,只需增加内存大小。

这种方式对我有用。

于 2013-11-25T12:53:07.940 回答