본문 바로가기

CS study/기타 토막지식

gradle heap 초과 시 해결 방법 (Expiring Daemon because JVM heap space is exhausted) (24.05.21)

목차

     

    Spring 프로젝트를 빌드할 때 Gradle이 메모리 부족으로 인해 실패하는 경우, JVM 힙 메모리를 늘려 문제를 해결할 수 있다. 

     

    Starting Gradle Daemon...
    Gradle Daemon started in 5 s 435 ms
    > Task :compileJava
    
    Expiring Daemon because JVM heap space is exhausted
    Daemon will be stopped at the end of the build after running out of JVM memory
    Expiring Daemon because JVM heap space is exhausted
    Expiring Daemon because JVM heap space is exhausted
    Expiring Daemon because JVM heap space is exhausted
    Expiring Daemon because JVM heap space is exhausted
    Expiring Daemon because JVM heap space is exhausted

     

    JVM 힙 메모리 옵션 설정

    • Xmx 옵션은 JVM 힙 메모리의 최대 크기를 설정하는 데 사용된다.
    • Xmx2560m는 최대 힙 메모리를 2560MB로 설정한다.

    방법 1: Gradle 명령줄에서 설정

    Gradle 명령을 실행할 때 JVM 옵션을 직접 지정할 수 있다.

    
    ./gradlew build -Dorg.gradle.jvmargs="-Xmx2560m"

    이 명령을 실행하면 Gradle 빌드 프로세스가 2560MB의 최대 힙 메모리를 사용하게 된다.

    방법 2: gradle.properties 파일에서 설정

    gradle.properties 파일에 JVM 옵션을 추가하여 설정할 수 있다. 이 파일은 프로젝트의 루트 디렉토리나 사용자 홈 디렉토리에 위치할 수 있다.

    프로젝트 루트 디렉토리의 gradle.properties 파일에 다음 줄을 추가하자.

    //..//
    org.gradle.jvmargs=-Xmx2560m

    이 설정을 추가하면, 모든 Gradle 빌드에서 기본적으로 2560MB의 최대 힙 메모리를 사용하게 된다.

    방법 3: build.gradle 파일에서 설정

    build.gradle 파일 내에서 allprojects 또는 subprojects 블록에 JVM 옵션을 설정할 수도 있다.

    
    allprojects {
        tasks.withType(JavaCompile) {
            options.forkOptions.jvmArgs = ['-Xmx2560m']
        }
    }

    이 설정은 모든 자바 컴파일 태스크에 대해 JVM 힙 메모리 설정을 적용한다.