SW/Gradle

Gradle : Build Phases : 개념, 예제, 설명, 방법

얇은생각 2025. 1. 3. 07:30
반응형

Gradle은 Java와 Android 개발에서 빌드를 관리하는 도구입니다. Gradle 빌드는 Initialization, Configuration, Execution의 세 단계로 이루어집니다. 각 단계의 역할을 간략히 살펴보겠습니다.

 

Gradle : Build Phases : 개념, 예제, 설명, 방법

 

Gradle Build Lifecycle 개요

  1. Initialization Phase: Gradle은 프로젝트 구조를 결정합니다. settings.gradle 파일을 사용해 프로젝트가 단일 프로젝트인지 다중 모듈인지 파악하고, 각 모듈에 대한 Project Object를 생성합니다.
  2. Configuration Phase: Gradle은 build.gradle을 읽고 태스크를 설정합니다. 이 과정에서 Directed Acyclic Graph (DAG)를 생성해 태스크 간의 순서와 종속성을 정의합니다. 이 단계에서는 빌드 로직을 설정하지만 실행은 하지 않습니다.
  3. Execution Phase: 설정된 태스크를 순서대로 실행합니다. 이 단계에서 컴파일, 테스트, 아티팩트 생성 등이 이루어집니다. doFirstdoLast 메서드를 사용해 태스크 전후에 실행할 작업을 지정할 수 있습니다.

 

태스크 실행 예시

아래 예시에서 println 'Configuring task...'는 Configuration Phase에서, doFirstdoLast는 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 작성 팁

  1. 구성 로직과 실행 로직 분리: doFirstdoLast를 사용해 실행 로직을 관리
  2. 순환 종속성 피하기: 비순환 구조로 태스크를 설정
  3. Lazy API 사용: Property API로 필요한 시점에 속성을 평가
  4. Multi-Module Build 활용: 복잡한 프로젝트는 settings.gradle로 관리
  5. 빌드 최적화: --profile로 빌드를 분석하고 병목 지점을 개선

 

결론

Gradle 빌드는 Initialization, Configuration, Execution의 세 단계로 나뉩니다. 각 단계의 목적을 이해하고 모범 사례를 따르면, 효율적이고 유지 관리 가능한 빌드 스크립트를 작성할 수 있습니다. 이를 통해 더 나은 성능과 관리가 가능한 빌드를 구현할 수 있습니다.

반응형