原因报错很明显,就是内存不足,搜了下网上的答案设置mvn运行的参数
MAVEN_OPTS=-Xmx512m
修改参数设置使生效,运行mvn test 结果还是报java.lang.OutOfMemoryError: PermGen space错误。
ps进程里面有发现,有一个surefire进程,检查单元测试配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>**/*.*</include>
</includes>
<!-- 单独fork一个进程去做单元测试,fork进程的加载spring框架容易导致内存溢出,设置jvm参数-->
<argLine>@{argLine} -Dfile.encoding=UTF-8 -Xmx512m -XX:MaxPermSize=256m</argLine>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
</configuration>
</plugin>
不难发现,mvn运行单元测试有重新fork出一个新的进程来执行单元测试。
当然如果forkCount设置为0,设置MAVEN_OPTS参数配置可能就会生效了,没有试验。有兴趣的可以试试
下面是官网上的几个配置类型
参考官网址
http://maven.apache.org/surefire/maven-surefire-report-plugin/