TIL #16 Gradle

HYEON JIN CHOI·2024년 5월 13일

1. 기본 개념

GradleApache AntMaven 의 좋은 점을 결합하여 만들어진 오픈 소스 빌드 자동화 시스템이다.
이 도구는 Groovy 기반의 DSL(Domain-Specific Language) 로 구성되어 있으며, 이를 통해 프로젝트의 빌드 스크립트를 효율적으로 작성할 수 있다.
Gradle 은 멀티 프로젝트 빌드 지원, 의존성 관리, 플러그인 기반 구조 등을 제공하여 복잡한 빌드 및 배포 작업을 간소화한다.

2. 특징

  • 성능 최적화: Gradle 은 증분 컴파일과 빌드 캐시를 활용하여 빌드 시간을 최소화한다.
  • 유연성과 확장성: 사용자가 정의한 태스크나 추가 플러그인을 통해 빌드 프로세스를 맞춤 설정할 수 있다.
  • 강력한 의존성 관리: Maven 과 유사한 구조로 의존성을 관리하면서도, 더 나은 성능과 사용성을 제공한다.
  • 다양한 언어와 플랫폼 지원: Java, Groovy, Kotlin 뿐만 아니라 C++, Python 등 여러 언어에 대한 지원을 포함한다.

3. 사용 예시

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.1.0'
    id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.sparta'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '17'
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

위 예시는 build.gradle 파일 예시로서 스프링 부트 웹 애플리케이션을 개발하기 위한 기본적인 설정을 포함하고 있다. 플러그인 설정, 의존성 관리, 그리고 Maven 중앙 저장소를 사용하여 필요한 라이브러리를 가져오는 방법을 명시하고 있다.

build.gradle 파일은 프로젝트의 빌드 과정을 구성하는 핵심 파일이다. 여기에는 사용할 플러그인, 프로젝트의 메타데이터(그룹 ID, 버전 등), 소스 코드 호환성 버전, 의존성 정의, 저장소 설정 등이 포함된다. 이 파일을 통해 Gradle은 필요한 모든 작업을 수행하고, 프로젝트를 컴파일하고, 테스트하며, 패키지로 만든다.

4. 회고

Gradle이 단순한 빌드 도구가 아니라, 프로젝트의 의존성 관리, 빌드 자동화, 환경 설정 등을 통합적으로 관리할 수 있는 강력한 도구임을 알게 되었다. 이를 통해 개발 과정의 효율성과 일관성을 크게 향상시킬 수 있다는 점에서 그 중요성을 느꼈다.

0개의 댓글