运行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没有相同的堆大小 - 但是我无法识别哪个插件从控制台输出分叉。
任何想法都赞赏!!!谢谢
答案 0 :(得分:0)
您可以尝试增加内存:
MAVEN_OPTS=-Xmx1024M -XX:MaxPermSize=512m
或使用JAVA_OPTS设置它(但这会影响正在执行的用户的任何JVM进程!)因此子进程也将具有以下设置:
JAVA_OPTS=-Xmx512M -XX:MaxPermSize=512m
首先尝试使用MAVEN_OPTS增加内存。
问候
维尔纳
答案 1 :(得分:0)
即使您使用JAVA_OPTS
环境变量,内存也不足?由于这会影响任何正在运行的vm,因此新生成的进程也应具有这些设置。
或尝试使用1200M的内存?也许没有太多堆内存丢失,如果你运行64位JVM,你可能只需要更多...有趣的问题。
我会使用-X运行构建,也许它是在堆错误之前执行的插件/目标。希望可以配置插件。
答案 2 :(得分:0)
如果声明了MAVEN_OPTS
变量,您可以签入计算机的环境变量。如果不是声明为
MAVEN_OPTS=-Xmx1024M -XX:MaxPermSize=512m
否则,如果它已经声明,只是增加内存大小。
这种方式对我有用。