Gradle은 JVM에서 가장 많이 사용되는 빌드 자동화 도구입니다.
Gradle은 그루비(Groovy)를 기반으로 한 오픈 소스로 Apache License 2.0을 따릅니다.
이전 세대의 빌드 도구 Ant와 Maven의 단점을 보완하고 장점을 취합하여 만들어 졌습니다.
호환성
Gradle은 다양한 언어와 프레임워크, IDE에서 호환됩니다.
지원하는 Languagues and Frameworks | 호환되는 IDEs |
Gradle 특징
Ant 및 Maven과 달리 XML 언어가 아닌 JVM 위에서 동작하는 그루비(Groovy) 기반의 DSL(Domain Specific Language)를 사용합니다.
특히 Maven의 pom.xml을 Gradle로 변환 할 수 있으며 중앙 저장소 역시 동일하게 지원하기 때문에 Maven에서 관리하던 라이브러리를 그대로 사용 할 수 있습니다.
호환되는 IDE를 사용하여 Gradle 프로젝트를 생성하면 build.gradle 또는 build.gradle.kts 이름의 파일이 생성됩니다.
plugins {
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}
test {
useJUnitPlatform()
}
IntelliJ IDEA에서 Gradle 프로젝트를 생성하면 프로젝트의 루트 디렉토리에 build.gradle 파일이 생성됩니다.
이 파일을 사용하여 새로운 라이브러리 종속성을 추가하고 빌드 Task를 생성하는 등의 스크립트 작성이 이뤄집니다.
IDE가 제공하는 인터페이스에서 Gradle Task를 Unit 단위로 실행하거나 프로젝트에서 변경된 종속성을 최신화 할 수도 있습니다.
용어 정리: 프로젝트
프로젝트는 Gradle이 빌드하는 대상입니다.
호환되는 IDE를 사용하면 기존 프로젝트에 Gradle을 연결하거나 새로운 Gradle 프로젝트를 생성 할 수 있습니다.
프로젝트의 루트 디렉토리 안에는 Gradle 빌드 스크립트 파일이 위치합니다.
build.gradle- 또는
build.gradle.kts
빌드 스크립트에서는 프로젝트에 대한 태스크, 라이브러리 의존성, 플러그인과 같은 구성을 DSL로 작성 할 수 있습니다.
용어 정리: 태스크
태스크는 컴파일, Unit 테스트 실행과 같은 작업을 실행하기 위한 코드로 구성됩니다.
태스크를 사용하면 프로젝트가 빌드되는 과정에서 필요한 작업을 구체화 할 수 있습니다.
용어 정리: 빌드
빌드는 Gradle 프로젝트가 태스크를 실행하는 과정입니다.
Gradle은 빌드 과정에서 어떤 태스크를 실행 할 것인지 구성 할 수 있습니다.
빌드 과정에서 테스트 코드가 실행되거나, 다른 서비스와 연계해야 하는 태스크 등이 포함 될 수 있습니다.
정리 및 복습
- Gradle은
DSL 기반의 오픈 소스 빌드 자동화 도구입니다. - 여러 언어와 IDE에서 호환되며, 호환 IDE를 사용하면 Gradle 프로젝트 관리에 필요한 인터페이스를 제공 받을 수 있습니다.
- Gradle이 빌드하는 단위는 프로젝트이며, 프로젝트의 루트 디렉토리에는
build.gradle또는build.gradle.kts빌드 스크립트가 포함됩니다. - Gradle 프로젝트에서는
종속성을 관리하고, 필요한태스크를 작성하여 빌드에 포함 시킬 수 있습니다.
'Build > Gradle' 카테고리의 다른 글
Gradle 도큐먼트: Gradle 플러그인(Plugins) 적용하기 (0) | 2023.11.15 |
---|---|
Gradle 도큐먼트: 의존성(Dependencies) 관리 (0) | 2023.11.15 |
Gradle 도큐먼트: 작업(Tasks) 실행하기 (0) | 2023.11.14 |
Gradle 도큐먼트: Gradle 프로젝트 시작하기 (0) | 2023.11.02 |
Gradle 도큐먼트: macOS에서 Gradle 설치하기 (0) | 2023.11.02 |