"198.1994.Out Of Memory Error: Maven 빌드의 Perm Gen 공간"
Maven 프로젝트 빌드 중에 이 에러가 발생하여 MAVEN_OPTS를 늘렸습니다만, 같은 투고를 몇개 발견했는데, 다른 것을 참조하고 있습니다.이거 어떻게 고쳐야 돼요?
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)
메이븐 에코시스템에서 어떻게 수정할지만큼 고민하지 않는다.
늘었다고 할 때MAVEN_OPTS
, 어떤 값을 늘렸습니까?증가했습니까?MaxPermSize
예를 들어 다음과 같습니다.
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"
(또는 Windows의 경우:)
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m
각 메이븐 프로젝트에서 이러한 JVM 옵션을 개별적으로 지정할 수도 있습니다.
반복 가능한 빌드를 위해 POM의 이 부분을 만들고 싶다면 몇 가지 플러그인(특히 컴파일러:compile 및 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>
물론 파마 공간도 늘려야죠.를 사용합니다.-XX:MaxPermSize=128m
선택.값을 적절한 값으로 설정합니다.
이 예외가 발생했을 때 Run Configurations...를 사용하여 이 문제를 해결했습니다.아래 그림과 같이 패널을 클릭합니다.특히 JRE 탭에서는 VM Arguments가 중요합니다.
(--Xmx1024m -Xms512m -XX:MaxPermSize=420m -XX:PermSize=440m" ).
이 매우 귀찮은 에러에 대해서, Windows 로 다음의 조작을 실시했습니다.
Edit system environment variables - > Edit Variables -> New
그 다음에 채우다
MAVEN_OPTS
-Xms512m -Xmx2048m -XX:MaxPermSize=512m
그런 다음 콘솔을 다시 시작하고 maven 빌드를 다시 실행합니다.메이븐의 공간/파마 사이즈의 문제가 없어졌습니다.
git mvn clean install for "java.lang"을 사용하여 전쟁을 빌드하려고 할 때 git bash 명령의 솔루션을 찾았습니다.Out Of Memory Error: Perm Gen space"가 Maven 빌드 오류에 나타난다.
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
영구 생성 힙이 가득 차서 일부 사용자가 명령 프롬프트를 사용하여 maven 프로젝트를 Windows에서 빌드할 때 이 오류가 발생합니다.힙 크기를 늘릴 필요가 있기 때문에 환경변수 @ControlPanel/System 및 Security/System을 설정하고 Change setting을 클릭한 후 Advanced를 선택하고 다음과 같이 Environment variable을 설정합니다.
- 변수명 : MAVEN_OPTS
- 변수값 : -XX:MaxPermSize=128m
언급URL : https://stackoverflow.com/questions/3101128/java-lang-outofmemoryerror-permgen-space-in-maven-build
'programing' 카테고리의 다른 글
C는 오픈 소스입니까? (0) | 2022.08.29 |
---|---|
VueX - 액션과는 다른 모듈에서의 디스패치액션 (0) | 2022.08.29 |
스위치 문: 기본값은 마지막 대/소문자여야 합니다. (0) | 2022.08.27 |
django rest 프레임워크에 악리를 통해 데이터를 전송할 때 Bad Request 400을 가져옵니다. (0) | 2022.08.27 |
패널 헤더 왼쪽에 아이콘이 있는 Vuetify 확장 패널 (0) | 2022.08.27 |