spring

[spring boot]멀티 모듈 프로젝트 생성하는 방법

seulhasony 2023. 8. 28. 13:05

[참고]

https://techblog.woowahan.com/2637/

 

 

내가 생성하려고 하는 건 이커머스라는 상위 프로젝트(루트) 내에 

1. user api 프로젝트

2. seller api 프로젝트

로 총 3가지의 스프링 부트 프로젝트를 생성하여 멀티 모듈 프로젝트를 만드려고 합니다.

 

https://start.spring.io/

우선 위의 링크에서 프로젝트 루트프로젝트를 생성했고 그다음 루트 프로젝트를 열어 보았습니다.

 

 


1. file -> open -> 상위 프로젝트의 build.gradle 열기

build.grale 열기

-> build.gradle로 프로젝트를 열어야 활성화(?)가 됩니다.

 

2. 루트프로젝트 오른쪽 마우스 -> New -> Module...

 

원하는 하위 프로젝트의 이름을 설정하여 빌드 시스템은 Gradle으로 설정해주세요.

나머지는 아마 디폴트로 동일할텐데 그래도 형광표시한 부분은 다시 한 번 확인해주세요.

 

3. 루트 프로젝트 setting.gradle 파일에 include 코드만 추가됐는지 확인해주세요.

rootProject.name = 'cms'
include 'user-api'
include 'seller-api'

(그러면, Gradle Tab에서도 user-api와 seller-api가 추가된 것을 확인하실 수 있으실거에요.)


 

이제 기본적인 셋팅은 끝났고 하위 프로젝트가 Spring boot로 활용될 수 있도록 ,

빌드 그레이들에 스프링부트 버전등과 dependencies들을 입력해주겠습니다.

 

build.gradle 

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.3'
	id 'io.spring.dependency-management' version '1.1.3'
}

group = 'com.ecommerce'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

아마, 위와 같이 모듈 프로젝트를 생성할 경우는 플러그인에 스프링부트 버전이 없을 거에요.

그래서 위의 코드에서 중요히 봐야 할 부분은 plugin입니다.

 

그다음 dependencie는 본인이 필요한 것들만 의존성 추가 해주시면 됩니다.

저는 h2 데이터베이스와 룸복 jpa등을 활용할 예정이라 추가했습니다-!