[자바/Gradle] build.gradle dependency Configuration

2024. 5. 12. 22:13
728x90
반응형

 

Gradle

1) 자바와 같은 언어로 작성된 프로젝트의 빌드를 자동화하기 위한 도구

2) 프로젝트의 구조와 의존성을 정의하는 build.gradle 파일을 사용하여 프로젝트를 구성

3) build.gradle을 기반으로 빌드 스크립트를 실행하고 프로젝트를 빌드

4) 쿠버네티스 환경에서는 Groovy나 Kotlin과 같은 스크립트 언어를 사용하여 빌드 스크립트를 작성(유연성)할 수 있어 Maven보다 더 많이 사용되고 있음

5) 쿠버네티스와 관련된 작업을 자동화하기 위한 플러그인을 사용하여 쿠버네티스 리소스를 빌드 및 배포하기 위한 작업을 간편하게 수행할 수 있음

6) 병렬 빌드와 캐시 기능을 통해 더 빠른 빌드를 제공. 쿠버네티스와 같이 빠른 개발 및 배포 사이클이 필요한 환경에서는 빌드 성능이 매우 중요함

 

 

Gradle 기능

1) Task: 빌드 프로세스를 구성하는 기본 단위. compile, test, jar, war 등

2) Plugin: Gradle 프로젝트의 특정 기능을 추가하는 데 사용

3) Dependency: 외부 및 내부 라이브러리와 프로젝트 간의 의존성을 관리

4) Build Lifecycle: 빌드 프로세스의 단계를 정의. 일반적으로 초기화, 구성, 실행 등의 단계로 구성됨

 

 

Dependency Configuration

1) api: 다른 모듈에서 사용 가능한 의존성

2) implementation: 이 모듈 내에서만 사용 가능한 의존성

3) compileOnly: 컴파일 시에만 필요한 의존성

4) testImplementation: 테스트를 컴파일하고 실행할때만 필요한 의존성

5) runtimeOnly: 런타임 시에만 필요한 의존성

6) annotationProcessor: 어노테이션 프로세서에 사용되는 의존성. 컴파일 시에만 필요하며, 런타임에는 사용하지 않음

 

 

샘플코드

dependencies {
    // 다른 모듈에서 사용 가능한 의존성
    api 'com.example:library:1.0'

    // 이 모듈 내에서만 사용 가능한 의존성
    implementation 'org.slf4j:slf4j-api:1.7.30'

    // 컴파일 시에만 필요한 의존성
    compileOnly 'javax.servlet:servlet-api:2.5'

    // 테스트를 컴파일하고 실행할때만 필요한 의존성
    testImplementation 'junit:junit:4.13.2'

    // 런타임 시에만 필요한 의존성
    runtimeOnly 'org.apache.commons:commons-lang3:3.12.0'

    // 어노테이션 프로세서에 사용되는 의존성
    annotationProcessor 'com.google.dagger:dagger-compiler:2.38.1'
}

 

728x90
반응형

BELATED ARTICLES

more