반응형
Gradle은 Java와 Android 개발에서 빌드를 관리하는 도구입니다. Gradle 빌드는 Initialization, Configuration, Execution의 세 단계로 이루어집니다. 각 단계의 역할을 간략히 살펴보겠습니다.
Gradle Build Lifecycle 개요
- Initialization Phase: Gradle은 프로젝트 구조를 결정합니다.
settings.gradle
파일을 사용해 프로젝트가 단일 프로젝트인지 다중 모듈인지 파악하고, 각 모듈에 대한 Project Object를 생성합니다. - Configuration Phase: Gradle은
build.gradle
을 읽고 태스크를 설정합니다. 이 과정에서 Directed Acyclic Graph (DAG)를 생성해 태스크 간의 순서와 종속성을 정의합니다. 이 단계에서는 빌드 로직을 설정하지만 실행은 하지 않습니다. - Execution Phase: 설정된 태스크를 순서대로 실행합니다. 이 단계에서 컴파일, 테스트, 아티팩트 생성 등이 이루어집니다.
doFirst
와doLast
메서드를 사용해 태스크 전후에 실행할 작업을 지정할 수 있습니다.
태스크 실행 예시
아래 예시에서 println 'Configuring task...'
는 Configuration Phase에서, doFirst
와 doLast
는 Execution Phase에서 실행됩니다.
task exampleTask {
println 'Configuring task...'
doFirst {
println 'Executing pre-task actions...'
}
doLast {
println 'Executing post-task actions...'
}
}
Gradle Phases 요약
- Initialization Phase: 프로젝트 구조 결정 및 Project Object 생성
- Configuration Phase: 태스크 설정 및 DAG 생성
- Execution Phase: 태스크 실행 및 빌드 작업 수행
Gradle Build Script 작성 팁
- 구성 로직과 실행 로직 분리:
doFirst
와doLast
를 사용해 실행 로직을 관리 - 순환 종속성 피하기: 비순환 구조로 태스크를 설정
- Lazy API 사용:
Property
API로 필요한 시점에 속성을 평가 - Multi-Module Build 활용: 복잡한 프로젝트는
settings.gradle
로 관리 - 빌드 최적화:
--profile
로 빌드를 분석하고 병목 지점을 개선
결론
Gradle 빌드는 Initialization, Configuration, Execution의 세 단계로 나뉩니다. 각 단계의 목적을 이해하고 모범 사례를 따르면, 효율적이고 유지 관리 가능한 빌드 스크립트를 작성할 수 있습니다. 이를 통해 더 나은 성능과 관리가 가능한 빌드를 구현할 수 있습니다.
반응형
'SW > Gradle' 카테고리의 다른 글
Gradle : Maven 비교, 설명, 개념, 예제 - Java Builds (0) | 2025.01.05 |
---|---|
Gradle Daemon : 개념, 설명, 예제, 명령어, 방법 및 빌드 최적화 (0) | 2025.01.04 |
Gradle : dependency 및 configuration 가이드, 개념, 예제, 방법 (0) | 2025.01.02 |
Gradle 저장소 간단 가이드 : 개념, 예제, 방법 (0) | 2025.01.01 |
Gradle 프로젝트에서의 의존성 관리 및 레포지토리 설정: 종합 가이드 (0) | 2024.10.19 |