독립적인 프로젝트들을 하나로 묶어 사용되는 구조로,
공통적으로 사용되는 기능을 작성하여 멀티 모듈 내의 프로젝트 모두에 적용 가능합니다.
Spring Boot Project로 최상위 프로젝트에
Spring Boot Web 프로젝트를 모듈로 추가 후
bootRun시 모듈 프로젝트가 동작하도록 설정
plugins {
id 'org.springframework.boot' version '2.1.6.RELEASE'
id 'java'
id 'eclipse'
id 'war'
}
apply plugin: 'io.spring.dependency-management'
bootRun.enabled = false
bootJar.enabled = false
bootWar.enabled = false
루트 프로젝트는 테스트 용으로 boot 설정만 추가하고 아무 동작 안하도록 설정

프로젝트 우클릭 후 새 모듈 추가

하위 새 모듈 작성
plugins {
id 'org.springframework.boot' version '2.1.6.RELEASE'
id 'java'
id 'eclipse'
id 'war'
}
apply plugin: 'io.spring.dependency-management'
bootRun {
jvmArgs = ["-Djava.net.preferIPv4Stack=true"]
}
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
springBoot {
mainClassName = "프로젝트 main class"
}
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
....
}
해당 Project의 build.gradle 설정 작성
// Root Project
rootProject.name = 'root'
// 하위 모듈 Project
include 'test'
모듈 프로젝트 등록
./gradlew bootRun --args='--spring.profiles.active=dev'