it-swarm.com.de

"Java.lang.OutOfMemoryError: PermGen space" in Maven build

Ich erhalte diesen Fehler beim Erstellen des Maven-Projekts. Ich habe zwar MAVEN_OPTS erhöht, aber trotzdem habe ich einige ähnliche Beiträge gefunden, die sich jedoch auf etwas anderes beziehen. Wie kann ich das beheben?

The system is out of resources.
Consult the following stack trace for details.
Java.lang.OutOfMemoryError: PermGen space
        at Java.lang.ClassLoader.defineClass1(Native Method)
        at Java.lang.ClassLoader.defineClassCond(ClassLoader.Java:632)
        at Java.lang.ClassLoader.defineClass(ClassLoader.Java:616)
        at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:141)
        at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:283)
        at Java.net.URLClassLoader.access$000(URLClassLoader.Java:58)
        at Java.net.URLClassLoader$1.run(URLClassLoader.Java:197)
        at Java.security.AccessController.doPrivileged(Native Method)
        at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
        at org.codehaus.plexus.compiler.javac.IsolatedClassLoader.loadClass(IsolatedClassLoader.Java:56)
        at com.Sun.tools.javac.comp.Annotate.<init>(Annotate.Java:52)
        at com.Sun.tools.javac.comp.Annotate.instance(Annotate.Java:36)
        at com.Sun.tools.javac.jvm.ClassReader.<init>(ClassReader.Java:215)
        at com.Sun.tools.javac.jvm.ClassReader.instance(ClassReader.Java:168)
        at com.Sun.tools.javac.main.JavaCompiler.<init>(JavaCompiler.Java:293)
        at com.Sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.Java:72)
        at com.Sun.tools.javac.main.Main.compile(Main.Java:340)
        at com.Sun.tools.javac.main.Main.compile(Main.Java:279)
        at com.Sun.tools.javac.main.Main.compile(Main.Java:270)
        at com.Sun.tools.javac.Main.compile(Main.Java:87)
        at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
        at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
        at Java.lang.reflect.Method.invoke(Method.Java:597)
        at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.Java:420)
        at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.Java:141)
        at org.Apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.Java:493)
        at org.Apache.maven.plugin.CompilerMojo.execute(CompilerMojo.Java:114)
        at org.Apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.Java:490)
        at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.Java:694)
        at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.Java:556)
        at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.Java:535)
180

Welche Werte haben Sie erhöht, wenn Sie sagen, dass Sie MAVEN_OPTS erhöht haben? Haben Sie die MaxPermSize erhöht, wie im Beispiel:

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"

(oder unter Windows :)

set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m
304
Arun R

Wenn Sie diesen Teil Ihres POM für einen wiederholbaren Build erstellen möchten, können Sie die Fork-Variante einiger Plugins verwenden (insbesondere compiler: compile und surefire: test ):

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
      <fork>true</fork>
      <meminitial>128m</meminitial>
      <maxmem>1024m</maxmem>
      <compilerArgs>
        <arg>-XX:MaxPermSize=256m</arg>
      </compilerArgs>
    </configuration>
  </plugin>

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18</version>
    <configuration>
        <forkCount>1</forkCount>
        <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
    </configuration>
</plugin>
23
eckes

Erhöhen Sie natürlich Ihren Dauerraum. Verwenden Sie die -XX:MaxPermSize=128m-Option. Stellen Sie den Wert auf einen geeigneten Wert.

16
duffymo

Dieser sehr ärgerliche Fehler also, was ich getan habe: Unter Windows:

Edit system environment variables - > Edit Variables -> New

dann füllen 

MAVEN_OPTS
-Xms512m -Xmx2048m -XX:MaxPermSize=512m

 enter image description here

Starten Sie dann die Konsole neu und führen Sie den Maven Build erneut aus. Keine Probleme mit dem Maven-Speicherplatz oder der Dauerwelle.

1
Xelian

Dieser Fehler tritt auf, wenn der permanente Generierungsheap voll ist und einige von uns den Befehl Prompt verwenden, um unser Maven-Projekt in Windows zu erstellen. Da die Heap-Größe erhöht werden muss, können Sie unsere Umgebungsvariable @ ControlPanel/System und Security/System festlegen. Dort klicken Sie aufChange settingund wählen Sie Advanced aus und setzen Sie die Umgebungsvariable wie folgt

  • Variablenname: MAVEN_OPTS
  • Variablenwert: -XX: MaxPermSize = 128m
0
Ranjit

Ich habe eine Lösung des Befehls git bash gefunden, wenn Sie versuchen, Krieg mit git mvn clean install für .__ zu erstellen. "Java.lang.OutOfMemoryError: PermGen space" in Maven-Buildfehler kommt

use below command first 

$ export MAVEN_OPTS="-Xmx512m -Xss32m"

then use your mvn command to clean install /build war file

$ mvn clean install

NOTE: you don't need -XX:MaxPermSize argument in MAVEN_OPTS when your are using jdk1.8
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=XXXm; support was removed in 8.0
0
mkumar0304

Als ich auf diese Ausnahmebedingung gestoßen bin, habe ich dies mithilfe des Fensters "Run Configurations ..." (Bildkonfigurationen ausführen) behoben (siehe Abbildung unten). Insbesondere auf der Registerkarte "JRE" sind die Argumente VM entscheidend 
("-Xmx1024m -Xms512m -XX: MaxPermSize = 1024m -XX: PermSize = 512m).

 enter image description here

0
ÖMER TAŞCI