Gradle - dependencies로 배우는 프로젝트의 의존 관계 구성하기 (1)
- 프로그래밍
- 2021. 8. 23.
그래들(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 등)에서 라이브러리를 다운받아 빌드할 수 있는 환경을 제공합니다.
'프로그래밍' 카테고리의 다른 글
Nodejs - MacOS Node 버전 업데이트 하기 (0) | 2022.05.13 |
---|---|
DataGrip - 테이블 DDL을 코틀린 Data Class로 변환하는 스크립트 (0) | 2022.05.11 |
매개변수(Parameter)와 인수(Argument)의 차이점은 무엇일까? (6) | 2022.01.12 |
웹 프로그래밍 - RESTful한 HTTP 요청 메서드와 HTTP 응답 상태 코드 (0) | 2021.12.09 |
Docker - 도커로 Mariadb 컨테이너 간편하게 설치하기 (1) | 2021.08.20 |