Maven:尝试为单元测试创​​建内存转储

JJ1*_*180 2 maven-2

我难以为单元测试创​​建内存转储,这会产生内存不足错误.

我的MAVEN_OPTS包含以下内容:

-Xmx1024m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp
Run Code Online (Sandbox Code Playgroud)

但是,当我使用"mvn install"从命令行运行我的单元测试时,在发生OutOfMemoryError时我没有得到任何这样的内存转储.

我如何获得内存转储?

谢谢

Tom*_*icz 5

surefire-plugin默认情况下,Maven(确切地说)创建用于运行测试的新JVM.MAVEN_OPTS变量由运行maven本身的JVM使用,但不是分叉测试JVM.要更改该JVM的设置,请使用以下代码段:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <!-- ... -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>-Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp</argLine>
                </configuration>
            </plugin>
            <!-- ... -->
        </plugins>
    </build>

</project>
Run Code Online (Sandbox Code Playgroud)