사용자 도구

사이트 도구


gradle:buildlifecycle

문서의 이전 판입니다!


Gradle Build Lifecycle

Gradle은 의존성 기반의 프로그래밍용 언어이다. 이 말은 태스크를 정의하고 또한 태스크들 사이의 의존성도 정의 할 수 있다는 뜻이다.

Gradle은 태스크들이 의존성의 순서에 따라 실행되고, 오직 한 번만 실행될 것임을 보장한다.

Gradle은 태스크를 실행하기 전에 완전한 의존성 그래프를 구축한다.

빌드 단계

Gradle 빌드는 3 단계로 구분된다.

  • 초기화 : 단일/멀티 프로젝트 빌드 지원. 초기화 단계에서는 어느 프로젝트를 빌드하는지 결정하고 각각에 대해 Project 객체를 생성한다.
  • 구성 : 빌드에 속하는 모든 프로젝트의 빌드 스크립트를 실행한다. 이를 통해 프로젝트 객체를 구성한다.
  • 실행 : 구성 단계에서 생성하고 설정된 태스크 중에 실행할 것을 결정한다. 이 때 gradle 명령행에 인자로 지정한 태스크 이름과 현재 디렉토리를 기반으로 태스크를 결정하여 선택된 것들을 실행한다.

설정 파일

빌드 파일 말고도 설정 파일도 있다. 설정 파일은 명명규칙에 따라 Gradle이 자동 인식한다. 기본 파일명은 settings.gradle이다.

설정 파일은 초기화 단계에서 실행된다. 멀티 프로젝트는 무조건 최상위 프로젝트에 settings.gradle이 있어야 한다. 어느 프로젝트가 멀티 프로젝트 빌드에 속하는지를 여기서 정한다. Gradle Multi Project 참조. 단일 프로젝트 빌드에서는 설정 파일이 없어도 된다.

  • 단일 프로젝트에서의 settings.gradle
    println 'This is executed during the initialization phase.'
  • build.gradle
    println 'This is executed during the configuration phase.'
     
    task configured {
        println 'This is also executed during the configuration phase.'
    }
     
    task test << {
        println 'This is executed during the execution phase.'
    }
  • 실행하면
    > gradle test
    This is executed during the initialization phase.
    This is executed during the configuration phase.
    This is also executed during the configuration phase.
    :test
    This is executed during the execution phase.
    
    BUILD SUCCESSFUL

빌드 스크립트에서는 프라퍼티 접근과 메소드 호출이 project 객체로 위임 된다. 유사하게 설정 파일에서는 Settings settings 객체로 위임 된다.

gradle/buildlifecycle.1349683028.txt.gz · 마지막으로 수정됨: 2012/10/08 16:57 저자 kwon37xi