simDev1234
심플하고 차분하게
simDev1234
전체 방문자
오늘
어제
  • 분류 전체보기
    • Computer Science
      • Basic Math
      • Data Structure
      • Algorithm
      • Database
      • OS
    • Language
      • Java
      • Kotlin
      • SQL
    • Framework
      • Spring
      • Orm&Mapper
      • 프로젝트로 스프링 이해하기
      • 스프링 라이브러리
    • Infra
      • Cloud
      • Docker
      • Redis
      • AWS, Azure
      • Device
    • Etc
      • CleanCoding
    • Git,Github

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 404
  • JVM메모리구조
  • 자바프로그래밍
  • null
  • scanner #next() #nextLine()
  • controllerTest
  • 참조변수
  • 스프링
  • 자바메모리구조
  • 자바
  • 참조타입
  • 컨트롤러
  • 자바프로그램

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
simDev1234

심플하고 차분하게

[이커머스 프로젝트] 멀티 모듈 생성하기
Framework/프로젝트로 스프링 이해하기

[이커머스 프로젝트] 멀티 모듈 생성하기

2022. 11. 25. 13:50

|  멀티 모듈 생성하기

- 모르는게 많은 개발자 포스팅 을 많이 참조하였습니다.

 

[1] Root 의 build.gradle을 아래와 같이 작성한다.

buildscript{
   ext {
      springBootVersion = '2.7.5'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
      classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
   }
}

allprojects {

}

subprojects {

   apply plugin: 'java'
   apply plugin: 'org.springframework.boot'
   apply plugin: 'io.spring.dependency-management'

   group = 'com.zerobase'
   version = '0.0.1-SNAPSHOT'
   sourceCompatibility = '1.8'

   configurations {
      compileOnly {
         extendsFrom annotationProcessor
      }
   }

   repositories {
      mavenCentral()
   }

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

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

 

[2] 모듈을 생성한다.

- settings.gradle에 include가 된 걸 확인

- gradle에서도 include 된 게 보임

 

[3] 서브 모듈의 build.gradle을 작성한다.

- 의존성 주입

dependencies {
    runtimeOnly 'com.h2database:h2'
    runtimeOnly 'com.mysql:mysql-connector-j'
}

 

[4] Root에서 서브 모듈 간의 의존관계를 작성할 수도 있다.

// 출처 : 모르는게 많은 개발자

project(':api') {
    dependencies {
        implementation project(':core')
    }
}

 

[5] 서브 모듈에서 어플리케이션 실행하기 위한 작업

- 서브 모듈을 생성하면, Main 클래스만 달랑 있고, SpringBootApplication이 설정되어 있지 않는다.

- 아래와 같이 서브 모듈의 패키지를 root 하위의 패키지 경로로 이동시키고, @SpringBootApplication을 달아준다.

- 이후 run을 하면 정상작동이 이루어진다.

 

[ 출처 ]

https://cjw-awdsd.tistory.com/55

'Framework > 프로젝트로 스프링 이해하기' 카테고리의 다른 글

[이커머스 프로젝트] 이메일 전송 기능 구현 (Mailgun, Feign)  (0) 2022.11.25
[이커머스 프로젝트] Swagger2 적용  (0) 2022.11.25
[이커머스 프로젝트] API Gateway를 활용한 MSA (Micro Service Architecture)  (0) 2022.11.25
[이커머스 프로젝트] 환경 변수를 외부에서 주입하는 법  (0) 2022.11.25
[이커머스 프로젝트] Docker란 무엇인가? (자료 정리)  (0) 2022.11.24
    'Framework/프로젝트로 스프링 이해하기' 카테고리의 다른 글
    • [이커머스 프로젝트] 이메일 전송 기능 구현 (Mailgun, Feign)
    • [이커머스 프로젝트] Swagger2 적용
    • [이커머스 프로젝트] API Gateway를 활용한 MSA (Micro Service Architecture)
    • [이커머스 프로젝트] 환경 변수를 외부에서 주입하는 법
    simDev1234
    simDev1234
    TIL용 블로그. * 저작권 이슈가 있는 부분이 있다면 댓글 부탁드립니다.

    티스토리툴바