terça-feira, 3 de março de 2015

maven : java.lang.OutOfMemoryError: PermGen space

Ao executar o maven (ex: mvn clean install site), poderá ocorrer o seguinte erro:

java.lang.OutOfMemoryError: PermGen space

A resolução do problema passou pela seguinte alteração no pom.xml. A adição explícita do plugin do surefire, e a adição do argLine.



<argLine>-Xms512m -Xmx2048m -XX:MaxPermSize=512m</argLine>





Exemplo mais completo:

 <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.18.1</version>
          <configuration>
            <argLine>-Xms512m -Xmx2048m -XX:MaxPermSize=512m</argLine>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

....

De referir que a alteração do MAVEN_OPTS nas variáveis de ambiente nunca resultou na resolução deste caso, nem a adição da tag <maxmem> no cobertura (no pom.xml), nem sequer a adição do JVM_OPTS nas variáveis de ambiente.

Referências: http://www.gitshah.com/2010/08/how-to-fix-outofmemoryerror-permgen.html