Gradle - dependencies로 배우는 프로젝트의 의존 관계 구성하기 (1)

그래들(Gradle) 빌드 시스템을 사용하면 외부 라이브러리 혹은 내부에서 사용하는 프로젝트나 라이브러리 모듈의 의존성을 쉽게 관리할 수 있습니다. 보다 자세한 Gradle의 의존성 관리 개념은 공식 사이트 가이드를 통해 익히시는 게 좋습니다. 이번 글에서는 Gradle을 사용하게 되면 필수적으로 알아야 하는 build.gradle 파일의 dependencies 설정에 대해 알아보겠습니다.

의존 유형을 알아야 한다. [ Dependency types ]

build.gradle에서 사용되는 정의 중 가장 먼저 알아야 할 부분은 의존 유형(Dependency types)입니다. Gradle을 이용해 프로젝트에 의존성을 추가하려면 build.gradle 파일의 dependencies 블록에 implementation과 같은 의존성 설정을 정의해야 합니다.

dependencies {
    // Local 라이브러리 모듈 or 프로젝트에 대한 종속성을 정의한다.
    implementation project(":mylibrary")

    // Local 바이너리 라이브러리에 대한 종속성을 정의한다.
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    // Remote 바이너리 라이브러리에 대한 종속성을 정의한다.
    implementation 'org.springframework.boot:spring-boot-starter'
}

 위의 예시처럼 build.gradle 파일에는 3가지의 의존 유형을 가지고 있습니다.

 

Local 라이브러리 모듈 의존성 설정하기 with Multi moudle

implementation project(":mylibrary")

 프로젝트를 구성할 때 Local에 정의된 모듈의 의존을 정의하는 방법입니다. Local의 모듈 혹은 프로젝트를 끌어와서 사용하는 경우에는 settings.gradle 파일에 설정 된 "include:"로 정의한 프로젝트의 이름과 같아야 합니다. 여기서는 mylibrary를 프로젝트에 사용할 수 있게 의존을 선언합니다. multi-moudle를 구성할 때도 사용되는 방법입니다.

 

Local 바이너리 라이브러리 의존성 설정하기

implementation fileTree(dir: 'libs', include: ['*.jar'])

 패키지화되어 있는 라이브러리 모듈의 의존을 정의하는 방법입니다. Gradle은 build.gradle 파일을 기준으로 루트 경로가 정의됩니다. 위에서 사용된 구문을 예시로 들면 "[프로젝트]/libs/" 폴더 내의 JAR 파일들과의 의존성을 선언하는 것과 같습니다.

implementation files('libs/test-lib.jar', 'libs/web-lib.jar')

 와일드카드(*)를 이용해 모든 파일을 정의할 수 있지만, 개별 파일에 대해서 의존성을 선언할 수 있습니다.

 

Remote 바이너리 라이브러리 의존성 설정하기

implementation 'org.springframework.boot:spring-boot-starter'

 가장 많이 사용되는 의존성 선언 방식으로 외부에 정의되어 있는 바이너리 라이브러리 의존성을 설정합니다. 라이브러리가 Local에 존재하지 않는다면 정의된 원격 저장소(ex: Maven repository, Nexus 등)에서 라이브러리를 다운받아 빌드할 수 있는 환경을 제공합니다.

반응형

댓글

Designed by JB FACTORY