Gradle 데몬(Daemon)은 사용자의 제어를 받지 않고 백그라운드 프로세스로 실행되는 프로그램입니다.
하단 Gradle 공식 문서에서도 Gradle은 JVM에서 실행되고 빌드를 실행하는데 걸리는 시간을 줄여주는 장기 백그라운드 프로세스라고 말합니다.
그렇기에 Gradle 3.0 부터 기본 설정으로 작업을 실행하면 데몬은 항상 기본 설정값으로 생성되게 되어 있습니다.
저의 경우 개발 서버에서 개발환경과 테스트환경을 같이 써서 많은 프로세스가 떠있기에 메모리 점유율이 85퍼가 넘어갔습니다...
메모리 자원을 최대한 효율적으로 써야했기에 Gradle 작업을 실행하면 데몬이 생성되지 않게 설정이 필요했습니다.
Gradle 작업을 실행할 때 데몬이 생성되지 않게 설정하는 방법 2가지를 정리했습니다.
Gradle Daemon은 빌드 간 프로젝트 정보도 캐싱을 해주고 빌드 속도를 빠르게 도와주는 유용한 기능입니다.
그럼에도 불구하고 Gradle Daemon을 사용하지 않고 특정 서버에서 메모리나 자원을 효율적으로 사용해야하고 조금이라도 메모리를 확보해야 한다면 참고해주시면 됩니다.
Gradle Daemon
The Gradle JVM client sends the Daemon build information such as command line arguments, project directories, and environment variables so that it can run the build. The Wrapper is responsible for resolving dependencies, executing build scripts, creating a
docs.gradle.org
gradle.properties로 설정 방법
설정 방법은 정말 간단합니다.
스프링 부트 프로젝트라고 했을 때 gradle.properties에 org.gradle.daemon=false 값만 넣어주시면 gradle build나 gradle 작업을 실행했을 때 데몬은 생기지 않습니다.
org.gradle.daemon=false
--no-daemon 파라미터 설정 방법
두 번째 방법은 gradle 작업 명령어에 --no-daemon 파라미터를 주면 됩니다.
해당 설정만 주게 되어도 gradle daemon은 생성되지 않습니다.
./gradlew build --no-daemon
gradle daemon 조회 방법
조회 방법은 gralde --status 명령어를 통해서 조회하는 방법이 있습니다.
gradle --status
JDK가 설치되어 있다면 jps 명령어를 통해서도 gradle daemon을 조회할 수 있습니다.
jps
리눅스를 사용중이라면 ps -ef | grep gradle 명령어를 통해서 gradle이라는 이름을 가진 프로세스를 조회도 가능합니다.
ps -ef | grep gradle
감사합니다.
'Gradle' 카테고리의 다른 글
Gradle에서 환경별 Nexus 설정 관리하기 (8) | 2024.11.14 |
---|---|
Gradle copyDependencies task 생성 및 사용 (0) | 2024.04.27 |
Gradle Build Lifecycle (0) | 2024.04.27 |
Spring Boot + Gradle build.gradle local .jar 추가 (2) | 2024.01.03 |