콘텐츠로 이동

2024 06 09

2024-06-09

멀티 모듈

참고: https://velog.io/@jthugg/spring-multi-module 참고: https://velog.io/@jonghyun3668/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%EB%8B%A8%EC%9D%BC-%EB%AA%A8%EB%93%88-%EC%BD%94%EB%93%9C%EC%97%90-%EB%A9%80%ED%8B%B0-%EB%AA%A8%EB%93%88%EC%9D%84-%EC%A0%81%EC%9A%A9%ED%95%98%EC%97%AC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B5%AC%EC%A1%B0-%EA%B0%9C%EC%84%A0%ED%95%98%EA%B8%B0 참고: https://jojoldu.tistory.com/123 참고: https://hello-judy-world.tistory.com/204

  • 개요
    • 모듈: 독립적으로 배포될 수 있는 코드의 단위
    • 멀티 모듈: 코드 뭉치를 하나의 프로젝트에서 관리
      • 각각의 모듈은 서로를 향한 의존성을 가질 수 있음
      • 각 모듈은 독립적으로 빌드할 수 있는 특징이 있음
  • 예시
    1. 기존 모놀리식 처럼 프로젝트 생성 (해당 모듈이 루트 모듈)
    2. 루트 모듈 build.gradle 수정
      • bootJar.enabled = false : 빌드시 현재 모듈에 .jar 생성 X
      • subprojects : 모든 하위 모듈들에 해당 설정 적용
      • dependencies : 모든 하위 모듈에 추가 될 의존성 목록
    3. 여러개 필요한 모듈 생성
    4. 루트 모듈 settings.gradle 수정
      • rootProject.name = 'multi-module'
      • include 'module-common' 등등...
    5. 루트 모듈 src 제거
  • 빌드/배포
    • ./gradlew :moduleName:build