기타

멀티모듈 배포방법

초록색거북이 2024. 1. 25. 09:51
728x90
반응형
SMALL

 

멀티모듈 구성

 

springboot 멀티모듈 구성하기

이런 구조를 보신적이 있으신가요? 이런 구조를 멀티모듈 구조라고 합니다. 지금부터 왜 이 멀티모듈 구조가 필요한지 알아보도록 합시다. 저는 멀티모듈구조를 갖기전 1. 관리자 프로젝트 2. 크

yjkim-dev.tistory.com

spring boot 에서 멀티 모듈을 구성하는 방법이 궁금하신 분들은 위의 링크를 타고 보시면 됩니다.

 

 

 

module-api (배포O)
module-crawling (배포O)
module-admin (배포O)
module-database (공통으로 갖는 모듈. 배포x)

4가지 모듈로 쪼개논 상태입니다.

실제로는 module-api, module-crawling, module-admin 이 3가지만 배포하면 됩니다.

 

 

젠킨스를 이용해서 배포를 하고 있는데, 큰 프로젝트껍데기 안에 4가지 모듈이 있습니다.

 

일반적인 방식으로 스크립트를 돌린다면 module-admin에서만 수정한 소스코드여도 

전체 모듈을 한번씩 다 빌드를 해주고있었습니다.

하지만 저희는 멀티모듈이기에 다 각자 독립적으로 생각을 해야합니다.

 

그래서 module 단위로 보아, 소스가 수정된 module만 빌드하고 배포할수 있도록 스크립트를 작성해야합니다.

 

 

그래서 활용하는 것이

 

changeset 입니다.

 

changeset은 조건에 맞게 변경감지된 것을 알려줍니다.

 

when {
    anyOf{
        changeset "module-database/**/*"
        changeset "module-admin/**/*"
    }
}

 

module-database 와 module-admin 하위 경로가 수정될때 '아래 스크립트를 수행 하라' 라고 조건을 걸어줍니다.

sh './gradlew ${MODULE_ADMIN}:build -x test'

 

그 후 ./gradlew module-api:build -x test 이런식으로, 모듈명을 적어주면, 그 모듈만 빌드를 시작합니다.

 

 

결론적으로 정리해보면, module-database, module-admin 하위경로가 소스코드가 수정되는걸 감지한다면

(적어준 모듈명) 모듈만 빌드해라. 이뜻입니다.

 

이를 활용해서 멀티모듈 배포를 하면 됩니다.

728x90
반응형
LIST