java.lang maven_java.lang.OutOfMemoryError:Maven中的Java堆空间

问题

当我运行maven test时,会发生java.lang.OutOfMemoryError。我谷歌它的解决方案,并尝试了export MAVEN_OPTS=-Xmx1024m,但它没有奏效。任何人都知道这个问题的其他解决方案,BTW我正在使用maven 3.0

提前致谢

运行"mvn test -e"时粘贴错误信息

Failed tests:

warning(junit.framework.TestSuite$1)

testDefaultPigJob_1(com.snda.dw.pig.impl.DefaultPigJobLocalTest)

testDefaultPigJob_2(com.snda.dw.pig.impl.DefaultPigJobLocalTest)

Tests run: 11, Failures: 3, Errors: 0, Skipped: 0

10/11/01 13:37:18 INFO executionengine.HExecutionEngine: Connecting to hadoop fi

le system at: file:///

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 30.063s

[INFO] Finished at: Mon Nov 01 13:37:18 PDT 2010

[INFO] Final Memory: 3M/6M

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.

5:test (default-test) on project dw.pig: There are test failures.

[ERROR]

[ERROR] Please refer to E:\Code\Java\workspace\dw.pig\target\surefire-reports fo

r the individual test results.

[ERROR] -> [Help 1]

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal o

rg.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on project

dw.pig: There are test failures.

Please refer to E:\Code\Java\workspace\dw.pig\target\surefire-reports for the in

dividual test results.

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor

.java:199)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor

.java:148)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor

.java:140)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje

ct(LifecycleModuleBuilder.java:84)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje

ct(LifecycleModuleBuilder.java:59)

at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu

ild(LifecycleStarter.java:183)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl

eStarter.java:161)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:314)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:151)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:445)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:168)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:132)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun

cher.java:290)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav

a:230)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La

uncher.java:409)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:

352)

Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures

.

Please refer to E:\Code\Java\workspace\dw.pig\target\surefire-reports for the in

dividual test results.

at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugi

n.java:629)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default

BuildPluginManager.java:107)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor

.java:195)

... 19 more

[ERROR]

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please rea

d the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc

#1 热门回答(144 赞)

当我运行maven测试时,会发生java.lang.OutOfMemoryError。我谷歌它的解决方案,并试图导出MAVEN_OPTS = -Xmx1024m,但它没有用。

使用MAVEN_OPTS设置Xmx选项可以正常工作,它确实配置了用于启动Maven的JVM。话虽这么说,默认情况下maven-surefire-pluginforksa是新的JVM,因此你的MAVEN_OPTS没有通过。

要配置maven-surefire-plugin使用的JVM的大小,你可能必须:

将forkMode更改为never(这不是一个好主意,因为Maven不会与测试隔离)〜或〜

使用argLine参数(正确的方法):

在后一种情况下,这样的事情:

-Xmx1024m

但是我不得不说我倾向于同意斯蒂芬在这里,你的测试之一很可能出现问题而我不确定提供更多内存是解决问题的正确方法(隐藏?)你的问题。

###参考文献

Maven 2 Surefire插件

Maven Surefire中的类加载和分叉

#2 热门回答(57 赞)

对于那些刚接触Maven的人(像我一样),这是整个配置,它位于你的pom的构建部分。干杯。

org.apache.maven.plugins

maven-surefire-plugin

2.19

-Xmx1024m

#3 热门回答(8 赞)

可能是问题出在你要求Maven运行的单元测试中。

因此,摆弄堆大小是错误的方法。相反,你应该查看导致OOME的单元测试,并尝试确定它是单元测试的错误还是它正在测试的代码。

首先查看堆栈跟踪。如果没有,则使用-e选项运行mvn ... test。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值