Quando executo o teste maven, java.lang.OutOfMemoryError acontece. Pesquisei no google por soluções e tentei export MAVEN_OPTS=-Xmx1024m
, mas não funcionou. Alguém conhece outras soluções para esse problema, estou usando o maven 3.0
desde já, obrigado
Cole a mensagem de erro aqui quando executar "mvn test -e"
Testes com falha: aviso (junit.framework.TestSuite $ 1) testDefaultPigJob_1 (com.snda.dw.pig.impl.DefaultPigJobLocalTest) testDefaultPigJob_2 (com.snda.dw.pig.impl.DefaultPigJobLocalTest) Testes executados: 11, Falhas: 3, Erros: 0, Ignorados: 0 10/11/01 13:37:18 INFO execuçãoengine.HExecutionEngine: Conectando ao hadoop fi sistema de arquivos em: file: /// [INFO] ----------------------------------------------- ------------------------- [INFO] FALHA NA CONSTRUÇÃO [INFO] ----------------------------------------------- ------------------------- [INFO] Tempo total: 30.063s [INFO] Finalizado em: segunda-feira, 01 de novembro 13:37:18 PDT 2010 [INFO] Memória final: 3M / 6M [INFO] ----------------------------------------------- ------------------------- [ERRO] Falha ao executar a meta org.apache.maven.plugins: maven-surefire-plugin: 2. 5: teste (teste padrão) no projeto dw.pig: há falhas no teste. [ERRO] [ERRO] Consulte E: \ Código \ Java \ espaço de trabalho \ dw.pig \ target \ surefire-reports fo r os resultados individuais do teste. [ERRO] -> [Ajuda 1] org.apache.maven.lifecycle.LifecycleExecutionException: falha ao executar o objetivo rg.apache.maven.plugins: maven-surefire-plugin: 2.5: test (teste padrão) no projeto dw.pig: Há falhas no teste. Consulte E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports para obter informações sobre resultados de testes individuais. em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 199) em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 148) em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 140) em org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct (LifecycleModuleBuilder.java:84) em org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct (LifecycleModuleBuilder.java:59) em org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu ild (LifecycleStarter.java:183) em org.apache.maven.lifecycle.internal.LifecycleStarter.execute (Ciclo de vida eStarter.java:161) em org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:314) em org.apache.maven.DefaultMaven.execute (DefaultMaven.java:151) em org.apache.maven.cli.MavenCli.execute (MavenCli.java:445) em org.apache.maven.cli.MavenCli.doMain (MavenCli.java:168) em org.apache.maven.cli.MavenCli.main (MavenCli.java:132) em sun.reflect.NativeMethodAccessorImpl.invoke0 (método nativo) em sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. Java: 39) em sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAcces sorImpl.java:25) em java.lang.reflect.Method.invoke (Method.java:597) em org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Laun cher.java:290) em org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.jav a: 230) em org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (La uncher.java:409) em org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java: 352) Causado por: org.apache.maven.plugin.MojoFailureException: há falhas de teste . Consulte E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports para obter informações sobre resultados de testes individuais. em org.apache.maven.plugin.surefire.SurefirePlugin.execute (SurefirePlugi n.java:629) em org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (Padrão BuildPluginManager.java:107) em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 195) ... mais 19 [ERRO] [ERRO] Execute novamente o Maven usando a opção -X para ativar o log de depuração completo. [ERRO] [ERRO] Para obter mais informações sobre os erros e possíveis soluções, acesse d os seguintes artigos: [ERRO] [Ajuda 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
java
maven
out-of-memory
zjffdu
fonte
fonte
Respostas:
Definir as
Xmx
opções usandoMAVEN_OPTS
funciona, ele configura a JVM usada para iniciar o Maven. Dito isto, o maven-surefire-plugin bifurca uma nova JVM por padrão e,MAVEN_OPTS
portanto, você não é aprovado.Para configurar o dimensionamento da JVM usada pelo maven-surefire-plugin, você precisa:
forkMode
paranever
(o que não é uma boa ideia, porque o Maven não será isolado do teste) ~ ou ~argLine
parâmetro (do jeito certo):No caso posterior, algo como isto:
Mas devo dizer que tenho a tendência de concordar com Stephen aqui, é muito provável que haja algo errado com um dos seus testes e não tenho certeza de que dar mais memória seja a solução certa para "resolver" (esconder?) O seu problema.
Referências
fonte
forkMode
foi preterido: maven.apache.org/surefire/maven-surefire-plugin/...forkMode
foi descontinuado, mas acho que deve ser substituído apenas por um comforkCount
funcionalidade semelhante. Uma maneira de usar o MAVEN_OPTS é,<argLine>${env.MAVEN_OPTS}</argLine>
mas aparentemente isso não é recomendado, pois pode variar de computador para computador ( stackoverflow.com/a/10463133/32453 ). Observe também que se você estiver usando jacoco você deveria conjunto argLine uma maneira diferente stackoverflow.com/questions/12269558/maven-jacoco-plugin-errorPara quem é novo no Maven (como eu), aqui está toda a configuração que se encontra na seção de compilação do seu pom. Felicidades.
fonte
As chances são de que o problema esteja em um dos testes de unidade que você pediu ao Maven para executar.
Como tal, mexer no tamanho da pilha é a abordagem errada. Em vez disso, você deve observar o teste de unidade que causou o OOME e tentar descobrir se é a falha do teste de unidade ou o código que está testando.
Comece observando o rastreamento de pilha. Se não houver, execute
mvn ... test
novamente com a-e
opçãofonte
Para solucionar temporariamente esse problema, achei o seguinte o caminho mais rápido:
fonte
Resolvi esse problema do meu lado de duas maneiras:
Adicionando essa configuração no pom.xml
Alterne para o JDK 1.7 usado em vez de 1.6
fonte
Para resolver java.lang.OutOfMemoryError: espaço de heap Java no Maven, tente configurar a configuração abaixo no pom
fonte
Não apenas memória de pilha. também aumente o tamanho do perm para resolver essa exceção no maven, use essas variáveis na variável de ambiente.
Exemplo:
fonte