멀티 모듈 프로젝트를 구성하고 있는데 domain 관련 모듈 구조를 잡던 중 겪었던 이슈를 정리해보고자한다.
domain 모듈에는 DB관련 설정들이 있다. JPA 관련 설정과 Entity 관련 클래스가 해당 모듈에 설정되었다.
gradle : 8.2.1
springboot : 3.1.2
java : 17
이전까지 spring2.x를 사용하다 3점대로 업그레이드 해보았는데, 3버전으로 넘어오면서 생긴 변화가 있다.
2버전대에서는 javax를 사용하였지만 , 3버전에서는 jakarta로 변경되었는데 이는 그냥 회사가 변경된것으로 사용하는데 큰 문제는 없었다.
1.domain 모듈에는 springboot 플러그인이 없다. 이 경우 의존성 버전을 명시하지 않을 경우 버전을 알 수 없기때문에 빌드에러가 발생한다.
의존성 에러가 발생한 도메인 모듈의 plugins과 dependencies
plugins {
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
dependencies {
// JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// JDBC
api "org.springframework.boot:spring-boot-starter-jdbc"
}
plugins {
id 'org.springframework.boot" version "3.1.2"
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
dependencies {
// JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// JDBC
api "org.springframework.boot:spring-boot-starter-jdbc"
}

2. 다른 모듈에서 domain 모듈을 읽어오지 못하는 이슈
이는 멀티 모듈 간에 yml 설정을 읽어오는데 문제가 생겨서 발생한 이슈이다.
api 모듈 -> core모듈 -> domain 모듈로 접근하는 식으로 구조를 잡았는데 api 모듈에서 domain 모듈에 있는데 DB설정을 읽어오지 못해서 DB를 구축하거나 JDBC 의존성을 제거라하나는 에러를 뱉어냈다.
멀티 모듈에서 yml 관리하는 법
System.setProperty("spring.config.name", "application,application-domain");
마치며..
qeurydsl 관련 설정도 하고 있는데 기본설정만 해서 추후 사용해보면서 이슈가 생기면 정리해보겠다.
틀린 부분이 있다면 언제나 댓글을 달아주세요..