티스토리 뷰

728x90
반응형

Gradle은 서브 프로젝트를 하나의 디렉토리로 관리하는 root & include 프로젝트 구성 기능을 제공한다. 

이를 통해 하나의 Git / SVN Repository로 여러 동일 레벨의 Multi Project를 관리할 수 있다.

Gradle Include Project (settings.gradle)

본격적인 Pub/Sub 구조의 애플리케이션 개발에 앞서 Gradle Project의 settings.gradle을 활용한 include project 생성 방법에 대해 먼저 살펴보도록 하자.

1) Gradler Project 생성

2) build.gradle 수정

buildscript {
   repositories {
        mavenCentral()
    }
}

3) settings.gradle 구성

rootProject.name = 'nrson-kafka-project'
include 'kafka-publisher'
include 'kafka-subscriber'

4) include에 포함할 gradle project 생성 후 root project 하위로 복사

> kafka-publisher / kafka-subscriber project 생성

> delete project (Do not delete project contents on disk)

> rootProject 하위로 kafka-publisher / kafka-subscriber Project 복사

5) Refresh Gradle Project

위와 같이 구성할 경우 동일한 레벨의 프로젝트를 하나의 디렉토리로 관리가 가능하며, 또한, 하나의 Git / SVN Repository로 관리할 수 있다.

또한 이렇게 하나의 프로젝트로 묶여 관리할 경우 프로젝트 간 참조를 다음과 같이 손쉽게 접근할 수 있다.

dependencies {
    compile(project(":kafka-publisher"))
}

kafka-subscriber project에서 위와 같이 dependencies를 주입할 경우 kafka-publisher의 클래스를 직접 참조할 수 있다.

위와 같이 하위 프로젝트를 root 디렉토리에 넣을수도 있고, 용도별로 구분하여 디렉토를 구성할 수도 있다.

rootProject.name = 'nrson-kafka-project'
include 'kafka:kafka-publisher'
include 'kafka:kafka-subscriber'
include 'common:front'
include 'common:backend'
include 'front:ui'

위와 같이 root 디렉토리에 kafka 디렉토리를 생성하고 그 하위에 publisher / subscriber 프로젝트를 구성한다. 또한 common 디렉토리를 생성하고 front / backend 각각 공통 모듈을 위한 프로젝트를 생성한다. 마지막으로 front 디렉토리를 생성하고 ui 프로젝트를 생성한다.

이와 같이 settings.gradle을 활용하여 멀티 프로젝트 간 상호 참조를 관리하고 하나의 디렉토리로 다중 프로젝트를 관리함으로써 효과적인 유지보수 체계를 제공할 수 있다.

728x90
반응형