본문 바로가기
스프링(부트)/에러 모음집(순서 뒤죽박죽)

[스프링부트] 스프링부트 멀티모듈 에러 (SpringBoot Multi-module Error)

by doflamingo 2019. 10. 28.

 

스프링 멀티 모듈을 만들 때, 아래와 같은 구조가 생길 수 있다. 

parent
  |
  + build.gradle
  |
  + settings.gradle
  |
  + A module
  |   |
  |   + build.gradle
  | 
  + B module
  |   |
  |   + build.gradle
  |
  + C module
  |   |
  |   + build.gradle
  | 
  + D module
  |   |
  |   + build.gradle

 

이때 settings.gradle에 아래와 같은 형태로 넣어주게 된다. 

 

rootProject.name = 'parent'

include 'A module'
include 'B module'
include 'C module'
include 'D module'

 

 

그리고 A 모듈의 패키지를 B모듈에서 참조할 경우 B 모듈의 build.gradle 에 이와 같이 넣어서 의존성을 추가해준다. 

dependencies {
	implementation project(':A module')
    ...
    ...
    ...
    
    
    
 }

보통 이렇게 되면 의존성이 주입되어 문제가 발생하지 않는다.

그러나 필자의 경우 문제가 발생해서 프로젝트를 5번 돌려서 다시했다.. 

(그래도 안돼서 컴 뿌실뻔 했지만 다행히 현실자각 후 참아따...휴....)

 

암튼, 그래서 수시간의 구글링 결과 방법을 찾았고 그 방법조차 자세히 해석이 안돼서..;;; 이것저것 시도하다 되었다..

 

그러니 너무 맹신하지 말고,, 안되면 한번 해보는 경우의 수의 하나로서 추천을 한다. 

 

다시 돌아와서, B에서 A의 모듈을 사용할 경우 B모듈의 build.gradle에 위와 같이 넣고 

A 모듈의 build.gradle에 아래 코드를 추가한다. 

bootJar { enabled = false }
jar { enabled = true }

아직 스프링 부트는 초보이기 때문에 이론적인 내용은 가면서 쓰겠습니다.

이론적인 내용은 아래의 링크를 참고하면 된다.

https://gist.github.com/ihoneymon/ac2accd2da7b4289a00259a4c983ca9c

 

댓글