我在构建项目期间收到此消息
java.lang.OutOfMemoryError:Java堆空间
我如何增加堆空间,我有8Gb或RAM是不可能的,maven消耗了那么多,我发现这个http://vikashazrati.wordpress.com/2007/07/26/quicktip-how-to-increase-the -java-heap-memory-for-maven-2-on-linux /如何在linux上执行它,但我在Windows 7.如何在Windows下更改java堆空间?
Pas*_*ent 117
MAVEN_OPTS例如,要设置的环境变量MAVEN_OPTS=-Xmx1024m.maxmem仅当您将编译器插件设置为fork javac到新JVM 时,pom中的配置才适用 .否则,插件在与Maven相同的VM内运行,因此在通过命令行传递的内存中运行MAVEN_OPTS.
在Windows 7下设置MAVEN_OPTS:
-Xmx1024m(或更多)打开一个新的命令窗口并运行mvn.
Mar*_*uee 45
如果在确保(或故障安全)JUnit测试运行期间您的堆空间不足,更改MAVEN_OPTS可能对您没有帮助.我一直在MAVEN_OPTS中尝试不同的配置而没有运气,直到我发现这个帖子解决了问题.
基本上JUnits分叉到他们自己的环境中并忽略MAVEN_OPTS中的设置.您需要在pom中配置surefire以为JUnit添加更多内存.
希望这可以节省别人一些时间!
编辑:复制Keith Chapman博客的解决方案,以防链接中断某天:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-Xms256m -Xmx512m</argLine>
<testFailureIgnore>false</testFailureIgnore>
<skip>false</skip>
<includes>
<include>**/*IntegrationTestSuite.java</include>
</includes>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
更新(2017年5月31日):感谢@johnstosh指出这一点 - 自从我把这个答案放在那里以后,万事如意地发生了变化.这是他们的文档和更新的代码示例的链接(arg行仍然是这个问题的重要部分):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
<systemPropertyVariables>
<databaseSchema>MY_TEST_SCHEMA_${surefire.forkNumber}</databaseSchema>
</systemPropertyVariables>
<workingDirectory>FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
cor*_*iKa 21
它应该是相同的命令,除了SET而不是EXPORT