| 멀티 모듈 생성하기
- 모르는게 많은 개발자 포스팅 을 많이 참조하였습니다.
[1] Root 의 build.gradle을 아래와 같이 작성한다.
buildscript{
ext {
springBootVersion = '2.7.5'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
}
}
allprojects {
}
subprojects {
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.zerobase'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
}
[2] 모듈을 생성한다.
- settings.gradle에 include가 된 걸 확인
- gradle에서도 include 된 게 보임
[3] 서브 모듈의 build.gradle을 작성한다.
- 의존성 주입
dependencies {
runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.mysql:mysql-connector-j'
}
[4] Root에서 서브 모듈 간의 의존관계를 작성할 수도 있다.
// 출처 : 모르는게 많은 개발자
project(':api') {
dependencies {
implementation project(':core')
}
}
[5] 서브 모듈에서 어플리케이션 실행하기 위한 작업
- 서브 모듈을 생성하면, Main 클래스만 달랑 있고, SpringBootApplication이 설정되어 있지 않는다.
- 아래와 같이 서브 모듈의 패키지를 root 하위의 패키지 경로로 이동시키고, @SpringBootApplication을 달아준다.
- 이후 run을 하면 정상작동이 이루어진다.
[ 출처 ]
'Framework > 프로젝트로 스프링 이해하기' 카테고리의 다른 글
[이커머스 프로젝트] 이메일 전송 기능 구현 (Mailgun, Feign) (0) | 2022.11.25 |
---|---|
[이커머스 프로젝트] Swagger2 적용 (0) | 2022.11.25 |
[이커머스 프로젝트] API Gateway를 활용한 MSA (Micro Service Architecture) (0) | 2022.11.25 |
[이커머스 프로젝트] 환경 변수를 외부에서 주입하는 법 (0) | 2022.11.25 |
[이커머스 프로젝트] Docker란 무엇인가? (자료 정리) (0) | 2022.11.24 |