&引用;java.lang.OutOfMemoryError:PermGen space“;在Maven构建中
我在构建Maven项目时遇到了这个错误,我增加了Maven_选项,但同样,我发现了一些类似的帖子,但它们引用了其他内容。我该如何解决这个问题&引用;java.lang.OutOfMemoryError:PermGen space“;在Maven构建中,java,maven,out-of-memory,permgen,Java,Maven,Out Of Memory,Permgen,我在构建Maven项目时遇到了这个错误,我增加了Maven_选项,但同样,我发现了一些类似的帖子,但它们引用了其他内容。我该如何解决这个问题 The system is out of resources. Consult the following stack trace for details. java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Metho
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)
系统资源不足。
有关详细信息,请参阅以下堆栈跟踪。
java.lang.OutOfMemoryError:PermGen空间
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:616)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
在java.net.URLClassLoader.access$000(URLClassLoader.java:58)
在java.net.URLClassLoader$1.run(URLClassLoader.java:197)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:190)
位于org.codehaus.plexus.compiler.javac.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:56)
位于com.sun.tools.javac.comp.Annotate.(Annotate.java:52)
位于com.sun.tools.javac.comp.Annotate.instance(Annotate.java:36)
位于com.sun.tools.javac.jvm.ClassReader.(ClassReader.java:215)
位于com.sun.tools.javac.jvm.ClassReader.instance(ClassReader.java:168)
位于com.sun.tools.javac.main.JavaCompiler.(JavaCompiler.java:293)
位于com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:72)
位于com.sun.tools.javac.main.main.compile(main.java:340)
位于com.sun.tools.javac.main.main.compile(main.java:279)
位于com.sun.tools.javac.main.main.compile(main.java:270)
位于com.sun.tools.javac.Main.compile(Main.java:87)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:420)
位于org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:141)
位于org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:493)
位于org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
位于org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.ExecuteGals(DefaultLifecycleExecutor.java:694)
位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
我并不担心如何修复,也不担心如何在maven生态系统中修复。当然,增加烫发空间的大小。使用
-XX:MaxPermSize=128m
选项。将值设置为适当的值。当您说您增加了MAVEN_OPTS
时,您增加了哪些值?是否增加了MaxPermSize
,如示例所示:
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"
(或在Windows上:)
您还可以指定这些JVM选项。如果您想将POM的这一部分用于可重复构建,您可以使用一些插件的fork变体(尤其是和):
org.apache.maven.plugins
maven编译器插件
3.2
真的
128米
1024米
-XX:MaxPermSize=256m
org.apache.maven.plugins
maven surefire插件
2.18
1.
-Xmx1024m-XX:MaxPermSize=256m
当您尝试使用git mvn clean install for构建war时,我找到了git bash命令的解决方案
Maven构建错误中的“java.lang.OutOfMemoryError:PermGen space”
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
当我遇到这个异常时,我使用运行配置解决了这个问题。。。面板如下图所示。特别是在JRE选项卡上,VM参数是关键的
(“-Xmx1024m-Xms512m-XX:MaxPermSize=1024m-XX:PermSize=512m”)
当永久生成堆已满时,我们会遇到这个错误,我们中的一些人会使用命令提示符在windows中构建maven项目。由于我们需要增加堆大小,我们可以设置环境变量@ControlPanel/System和Security/System,然后单击更改设置,选择高级并设置环境变量,如下所示
- 变量名称:MAVEN_OPTS
- 变量值:-XX:MaxPermSize=128m
- 这是一个非常恼人的错误,所以我所做的是:
在Windows下:
Edit system environment variables - > Edit Variables -> New
然后填充
MAVEN_OPTS
-Xms512m -Xmx2048m -XX:MaxPermSize=512m
然后重新启动控制台并再次运行maven构建。不再有Maven space/perm大小问题。如果搜索“PermGen space”,会有很多类似的问题嗯,这是在部署到tomcat时,我还没有到目前为止,所以它与您看到的不一样,我甚至不使用tomcat,我使用jboss错误是在maven期间build@PaulTomblin我同意,但在构建项目时没有一个提到错误,但解决方案是一样的:增加JavaVM上的PermGen空间(在本例中:运行maven的那个)@Gandalf-这是我为Maven找到的建议:
-Xms512m-Xmx1024m-XX:PermSize=256m-XX:MaxPermSize=512m
我可以在pom.xml中设置这个属性吗?我需要使我的构建能够移植到不同的环境中。他知道这一点。不是他要求的为mac/linux用户调整注释,只是在~/.profile(或类似文件名)中添加一条导出语句。例如:导出MAVEN_OPTS=“-Xmx512m-XX:MaxPermSize=256m”…并重新启动shell。为我工作。如果使用命令构建项目,请使用-DXmx512m-DXX:MaxPermSize=128mon Unixexport MAVEN_OPTS=“-Xmx512m-XX:MaxPermSize=128m”
Bett
MAVEN_OPTS
-Xms512m -Xmx2048m -XX:MaxPermSize=512m