본문 바로가기

Build/Gradle

Gradle 도큐먼트: 명령줄 인터페이스(Command-Line Interface) 기본 사용법

이 문서의 내용

    더보기

    명령줄 인터페이스(Command-Line Interface)는 Gradle과 상호 작용하는 주요 방법 중 하나입니다.

    가급적 Gradle Wrapper를 사용하는 것을 권장합니다.

    명령줄은 macOS 또는 Linux 환경에서는 ./gradlew에서 실행합니다. Window 환경에서는 gradle.bat에서 실행합니다.

    이 문서에서 소개하는 명령줄 사용 예시는 macOS를 기준으로 작성되었습니다.

    명령줄 기본 규칙

    CLI에서 Gradle 실행은 다음 구조를 준수합니다.

    $ ./gradlew <Task> <--Option>

    옵션은 Task의 전후에 위치 할 수 있습니다.

    $ ./gradlew <--Option> <Task>

    여러 개 Task를 한 번에 수행하려면 Task 간에 공백(Space)으로 구분합니다.

    $ ./gradlew <Task> <Task> <--Option>

    인자를 받는 옵션은 옵션과 인자 사이에 등호(=)를 사용합니다. 등호는 생략 될 수 있으나 가급적 사용하는 것을 권장합니다.

    $ ./gradlew <Task> --console=plain

    동작을 지정하는 long-form 옵션의 경우 반대 지정자에 해당하는 --no-로 시작하는 옵션이 존재합니다.

    $ ./gradlew <Task> --build-cache
    $ ./gradlew <Task> --no-build-cache

    대부분의 long-form 옵션의 경우 short-form 약어가 존재합니다.

    $ ./gradlew --help
    $ ./gradlew -h
    더보기

    대부분의 Gradle 명령줄 옵션은 gradle.properties 파일에서 정적으로 지정 될 수 있습니다.

    자세한 내용은 Configuring build environment guide를 참고합니다.

    더보기

    일부 플러그인은 고유의 명령줄 옵션을 사용 할 수 있습니다.

    예를 들어 Java test filtering 플러그인은 --tests 옵션을 제공합니다.

    Task에서 사용 가능한 명령줄 옵션을 표시하려면 Declaring command-line options를 참고합니다.

    Task 수행

    대부분의 빌드는 build assemble 그리고 check Task를 포함하는 일반적인 작업 셋 Lifecycle tasks을 지원합니다.

    루트 프로젝트에서 Task를 수행하려면 Task 앞에 : 접두사를 사용합니다. 이 명령문은 단일 Task와 연관된 모든 Dependencies를 실행합니다.

    $ ./gradlew :someTask

    Task에 옵션을 전달하려면 옵션 앞에 -- 접두사를 사용합니다.

    $ ./gradlew <Task> --someOption=someOptionValue
    더보기

    Task에서 등록하는 옵션이 Gradle의 기본 옵션(Built-in options, e.g. --profile 또는 --help와 같은) 이름과 중복 될 수 있습니다.

    Gradle은 충돌을 방지하는 대신 Task 앞에 -- 구분자 기호를 사용하여 기본 옵션과 구분되도록 합니다.

    $ ./gradlew <--Built-in options> -- <Task> <--Task options>

    예를 들어 someTask가 Gradle 기본 옵션 --help와 중복되는 --help 옵션을 제공하면 다음과 같이 사용합니다.

    $ ./gradlew --help -- someTask --help

    반면 someTask가 --help 옵션을 제공하더라도 별도의 -- 구분자 기호가 포함되지 않으면 Gradle 기본 옵션이 실행됩니다.

    $ ./gradlew someTask --help

    다중 프로젝트 빌드(Multi-Project build)에서 Task 수행

    Multi-Project build에서 하위 프로젝트의 Task는 : 구분자와 함께 사용됩니다.

    다음 두 개의 명령어는 루트 프로젝트에서 하위 프로젝트의 Task를 수행하기 위해서 사용됩니다.

    $ ./gradlew :<Subproject>:<Subproject task>
    $ ./gradlew <Subproject>:<Subproject task>

    하위 프로젝트에서 직접 Task를 수행하는 경우 하위 프로젝트의 이름은 생략합니다.

    $ cd Subproject
    $ ./gradlew <Subproject task>

    Task 이름으로만 구성된 Task selector(작업 선택자)를 사용하면 모든 하위 프로젝트의 Task를 수행합니다.

    다음은 루트 프로젝트 디렉토리에서 실행될 때 모든 하위 프로젝트의 test Task를 수행합니다.

    $ ./gradlew test
    더보기

    helpdependencies와 같은 Task selector는 모든 하위 프로젝트에서 실행되는 대신 호출된 프로젝트에서만 실행되기도 합니다.

    더보기

    하위 프로젝트 디렉토리에서 Gradle Wrapper를 사용할 때는 ../gradlew와 같이 상대 경로로 실행합니다.