Sign In

Gradle

프로젝트 (Projects)

Gradle 프로젝트: Gradle 프로젝트는 애플리케이션이나 라이브러리와 같이 빌드할 수 있는 소프트웨어 단위를 의미합니다.
단일 프로젝트 빌드: 단일 프로젝트 빌드는 root project라고 불리는 하나의 프로젝트로 구성됩니다.
멀티 프로젝트 빌드: 멀티 프로젝트 빌드는 하나의 root project 와 여러 개의 sub project로 구성됩니다.

빌드 스크립트 (Build Scripts)

빌드 스크립트: 빌드 스크립트는 Gradle에게 프로젝트를 빌드하기 위해 어떤 단계를 수행해야 하는지 상세히 설명합니다.
각 프로젝트: 각 프로젝트는 하나 이상의 빌드 스크립트를 포함할 수 있습니다.

의존성과 의존성 관리 (Dependencies and Dependency Management)

의존성 관리: 의존성 관리는 프로젝트에 필요한 외부 리소스를 선언하고 해결하는 자동화된 기술입니다.
의존성: 각 프로젝트는 일반적으로 Gradle이 빌드 중에 해결하는 여러 의존성을 포함합니다.

태스크 (Tasks)

태스크: 태스크는 코드를 컴파일하거나 테스트를 실행하는 것과 같은 작업의 기본 단위입니다.
프로젝트와 태스크: 각 프로젝트는 빌드 스크립트나 플러그인 내부에 정의된 하나 이상의 태스크를 포함합니다.

플러그인 (Plugins)

플러그인: 플러그인은 Gradle의 기능을 확장하는 데 사용됩니다.
플러그인과 태스크: 플러그인은 선택적으로 프로젝트에 태스크를 추가할 수 있습니다.
gradle wrapper
Gradle Wrapper의 역할: Wrapper는 직접 빌드 작업(컴파일, 테스트 실행 등)을 수행하지 않습니다. 대신, 다음과 같은 과정을 거칩니다:
gradlew 스크립트(또는 gradlew.bat)를 실행하면, gradle-wrapper.properties에서 지정된 Gradle 버전을 확인.
필요하면 해당 Gradle 버전을 다운로드.
gradle-wrapper.jar를 통해 Gradle을 호출하고, 빌드 스크립트(build.gradle)에 정의된 태스크를 실행하도록 Gradle에 위임.
즉, Wrapper는 빌드 프로세스를 시작하고 Gradle을 실행하는 도구이지, 태스크를 직접 수행하는 "executor"는 아닙니다. 실제 빌드 작업(컴파일, 테스트 등)은 Gradle 자체가 처리합니다.
비유로 이해하기
Gradle Wrapper를 "요리사"라고 보기는 어렵고, 오히려 "주방 매니저"에 가깝습니다:
주방 매니저 (Wrapper): 필요한 도구(Gradle)를 준비하고, 요리 지침(build.gradle)을 요리사에게 전달.
gradlew build 권장:
팀 프로젝트: 모든 사람이 동일한 Gradle 버전을 사용해 빌드 결과의 일관성을 보장.
CI/CD 환경: 서버에 Gradle 설치 없이 빌드 가능.
새로운 환경: Gradle 설치 없이 프로젝트를 바로 빌드.
예: ./gradlew build (Unix/Linux/Mac) 또는 gradlew.bat build (Windows).