Maven抛出"java.lang.OutOfMemoryError"

use*_*858 33 java maven-2 out-of-memory

我正在使用"mvn install"编译一个开源项目,但结果却是java.lang.OutOfMemoryError: Java heap space.我试图执行,java -Xmx256m但输出是java简介,表明它是一个无效的命令.

我正在使用jdk1.5.0_08,任何想法为什么会发生这种情况?

谢谢,

cle*_*tus 52

设置环境变量:

MAVEN_OPTS="-Xmx512m"
Run Code Online (Sandbox Code Playgroud)

  • 有时也可以扩展perm内存大小 - MAVEN_OPTS =" - Xmx512m -XX:MaxPermSize = 256m" (12认同)
  • 如果在运行单元测试时构建失败,则仅设置MAVEN_OPTS是不够的.在这种情况下,您可能必须明确配置maven-surefire-plugin的"argLine". (2认同)

And*_*yuk 18

这取决于哪个JVM实例需要更多内存.例如,如果测试是分叉的(默认情况下),并且由于OutOfMemoryError而失败,那么尝试启动它们的configure插件:

        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <argLine>-Xmx1024m</argLine>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)


小智 9

不仅堆内存.您还必须增加perm大小以解决maven中的异常在环境变量中使用这些变量.

变量名:MAVEN_OPTS
变量值:-Xmx512m -XX:MaxPermSize = 256m


4lb*_*rto 6

有时,如果您在 maven 中使用其他程序,例如在集成测试或 Surefire 中,MAVEN_OPTS 是不够的。除了 MAVEN_OPTS,尝试使用 JAVA_TOOL_OPTIONS。在 Maven 中运行一些集成测试时,这对我有用:

export JAVA_TOOL_OPTIONS="-Xmx2048m -XX:MaxPermSize=1024m -Xms2048m"
Run Code Online (Sandbox Code Playgroud)

参考: osx maven 运行测试异常:从线程“main”中的 UncaughtExceptionHandler 抛出的 java.lang.OutOfMemoryError