6

在 Windows 上的 Maven 中运行我的单元测试时,我遇到了 OutOfMemory 异常。我尝试将 -XX:-HeapDumpOnOutOfMemoryError 选项添加到surefire argLine,但没有生成转储文件。我也尝试将相同的东西添加到 MAVEN_OPTS,但仍然没有,我只是得到一个 OutOfMemory 异常并且进程挂起,直到我手动杀死它。

我的pom如下:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>                    
        <testFailureIgnore>false</testFailureIgnore>
        <argLine>-Xms512m -Xmx512m -XX:PermSize=256m -XX:-HeapDumpOnOutOfMemoryError</argLine>
        <forkMode>once</forkMode>            
    </configuration>
</plugin>

MAVEN_OPTS:

set MAVEN_OPTS=-XX:-HeapDumpOnOutOfMemoryError

你知道为什么没有生成转储文件吗?

4

4 回答 4

5

您正在使用“-”来禁用该选项。使用“+”启用它:

<argLine>... -XX:+HeapDumpOnOutOfMemoryError</argLine>
                 ^ 
于 2018-04-12T07:52:30.173 回答
2

尝试这个:

set MAVEN_OPTS="-Dmaven.surefire.debug=\"-XX:-HeapDumpOnOutOfMemoryError\""
于 2011-01-06T02:27:06.660 回答
1

您的内存泄漏可能刚刚修复,请参阅http://jira.codehaus.org/browse/SUREFIRE-495。您可能想尝试使用 surefire 2.7.1 或更高版本。

于 2011-01-11T17:02:27.113 回答
0

我想你忘记了路径:

    <argLine>-Xms512m -Xmx512m -XX:PermSize=256m -XX:-HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=/tmp</argLine>

有了这个论点:

     -XX:HeapDumpPath=/tmp
于 2014-01-07T08:48:04.863 回答