본문 바로가기
Spring

SpringBoot MultiModule(멀티모듈) 구성하기

by ssoop 2021. 10. 27.
반응형

SpringBoot MultiModule(멀티모듈) 구성하기

멀티모듈이란?

프로젝트안에서 모듈로 내부 라이브러리로 구성하여 여러 모듈에서 사용하는 방식을 얘기합니다.
모듈의 자세한 설계로는 멀티모듈 설계 이야기 with Spring, Gradle 를 참고하시면 될 것 같습니다.

Spring Boot 2.5.5
Gradle 6 버전

Spring Boot 멀티 모듈 구성하기

프로젝트 구조

  • Root : multi-module
  • Module: admin, api, core

프로젝트 생성

Gradle 프로젝트로 생성합니다.

원하는 프로젝트명 입력합니다.

새로운 모듈을 생성합니다.

프로젝트 생성했을 때와 똑같이 Gradle 모듈로 생성합니다.

Parent: Root 프로젝트인 multi-module로 설정합니다.

나머지 module-api, module-admin 도 위와 똑같이 생성해줍니다.

Root

Root에 있는 src 폴더는 사용하지 않기 때문에 삭제해줍니다.
그리고 setting.gradle, build.gradle를 아래와 같이 수정합니다.

  • setting.gradle
rootProject.name = 'multi-module'
include 'module-api'
include 'module-admin'
include 'module-core'
  • build.gradle
buildscript {
    ext {
        springBootVersion = '2.5.5'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
    }
}

subprojects {
    group = 'com.ssoop.blog'
    version = '0.0.1-SNAPSHOT'

    apply plugin: 'java'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'

    sourceCompatibility = 1.8

    repositories {
        mavenCentral()
    }

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

Module-Core

bootJar {
    enabled = false
}

jar {
    enabled = true
}

dependencies {
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
    implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.3'
    implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
}

그 외 모듈

module-api: build.gradle
module-admin: build.gradle

dependencies {
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    implementation 'org.springframework.boot:spring-boot-autoconfigure'
    implementation 'org.springframework.boot:spring-boot-starter-aop'
    implementation project(':module-core')
}

기본적인 멀티 모듈 세팅은 완료되었습니다.
모든 프로젝트 소스는 GitHub 에 있습니다.

반응형

'Spring' 카테고리의 다른 글

AES 암호화 복호화 (Spring & NodeJs 완벽 호환)  (0) 2021.10.04

댓글