명령줄 인터페이스(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
help와 dependencies와 같은 Task selector는 모든 하위 프로젝트에서 실행되는 대신 호출된 프로젝트에서만 실행되기도 합니다.
하위 프로젝트 디렉토리에서 Gradle Wrapper를 사용할 때는 ../gradlew와 같이 상대 경로로 실행합니다.
'Build > Gradle' 카테고리의 다른 글
Gradle 도큐먼트: 빌드 스크립트 build.gradle.kts 더 보기 (0) | 2023.11.27 |
---|---|
Gradle 도큐먼트: 빌드 스크립트 build.gradle.kts 기본기 (0) | 2023.11.23 |
Gradle 도큐먼트: 환경 변수(Environment variables)를 사용한 빌드 환경 구성 (0) | 2023.11.21 |
Gradle 도큐먼트: Gradle 프로퍼티(Gradle properties)를 사용한 빌드 환경 구성 (0) | 2023.11.17 |
Gradle 도큐먼트: 시스템 프로퍼티(System properties)를 사용한 빌드 환경 구성 (0) | 2023.11.17 |