Maven 2 Maven:正在尝试为单元测试创建内存转储

Maven 2 Maven:正在尝试为单元测试创建内存转储,maven-2,Maven 2,我很难为产生内存不足错误的单元测试创建内存转储 我的MAVEN_选项包含以下内容: -Xmx1024m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp 然而,当我使用“mvn安装”从命令行运行单元测试时,当OutOfMemoryError发生时,我不会得到任何这样的内存转储 如何获取内存转储 感谢Maven(surefireplugin准确地说)默认情况下为运行测试创建新的JVMMAVEN_OPTS变量由运行MAVEN本身的JV

我很难为产生内存不足错误的单元测试创建内存转储

我的MAVEN_选项包含以下内容:

-Xmx1024m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp
然而,当我使用“mvn安装”从命令行运行单元测试时,当OutOfMemoryError发生时,我不会得到任何这样的内存转储

如何获取内存转储

感谢

Maven(
surefireplugin
准确地说)默认情况下为运行测试创建新的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>

org.apache.maven.plugins
maven surefire插件
-Xmx1024m-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=C:\Temp

在哪里添加此插件?在我正在运行其测试的项目的pom中?@DJoyce:是的,我更新了我的答案,以显示您放置该代码段的确切上下文。我现在已经尝试过了,尽管我观察到OutOfMemory错误,但C:\Temp中仍然没有条目。还有其他想法吗?@DJoyce:您的选项是错误的,应该是:'-XX:+HeapDumpOnOutOfMemoryError',而不是
-XX:-HeapDumpOnOutOfMemoryError
。我更正了我的答案(你问题的C&P)。