ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] 멀티 모듈 프로젝트 구성
    자바/기타 2020. 9. 21. 20:25

    이번 시간에는 gradle을 이용해서 멀티 모듈 프로젝트를 구성하는 방법에 대해서 알아보도록 하겠습니다.

    이번 시간에 테스트해볼 멀티 모듈의 구조는 아래와 같다.

    • spring-boot-guides : 최상단 프로젝트
      • application : main 클래스를 통해 실행되는 application 관련 모듈들을 담고 있는 폴더,독립적으로 실행 가능하다.
        • spring-boot-common-super-application : 실행 가능한 프로젝트 모듈
      • common : 여러 모듈에서 import해서 사용할 수 있는 모듈들을 담고 있는 폴더,독립적으로 실행 할 수 없다.
        • system-core : 공통 로직을 담고 있는 라이브러리 모듈
    가장 먼저 IntelliJ에서 New - Project에서 Gradle 프로젝트를 생성한다.

     

    생성하려는 프로젝트의 이름을 입력한다.

     

    프로젝트가 구성되면 build.gradle 파일을 연다.

     

    최상위 build.gradle 파일에서는 하위 모듈에서 사용할 plugins을 선언해준다.

     

    가장 앞에서 얘기했던 프로젝트 구조처럼 최상위 프로젝트는 하위 모듈들을 담고 있는 그릇 역활로만 사용할 것이기 때문에 최상위 프로젝트의 src 폴더를 삭제한다.

     

    settings.gradle 파일에서 앞으로 생성 할 모듈을 추가한다.
    application 폴더 아래에 spring-boot-common-super-application 모듈을 설정
    common 폴더 아래에 system-core 모듈 설정

     

    settings.gradle에 입력 한 정보를 반영하기 위해 전체 gradle 설정을 reimport 한다.

     

    spring-boot-guides에서 마우스 우클릭 후 New -> Directory 메뉴를 선택한다.

     

    폴더를 아래와 같은 구조로 생성한다.

     

    생성하려는 하위 모듈에 build.gradle 파일을 각각 생성하고 사용하려는 plugins 선언, source & target 버젼, jar를 내려받을 repositories를 먼저 설정한다.

     

    위에서 생성 한 build.gradle 설정을 반영하기 위해 전체 gradle 설정을 reimport 한다.

     

    위 과정을 마친 후 spring-boot-common-super-application과 system-core 모듈에 마우스를 위치하고 우클릭 후 New -> Directory를 선택하면 Gradle Source Sets를 볼 수 있다.

     

    spring-boot-common-super-application과 system-core 각각의 모듈에 아래 모든 Gradle Source Sets를 생성한다.
    각각의 모듈에서 New -> Directory를 4번씩 실행해서 아래 모든 Gradle Source Sets을 생성한다.

     

    위 과정을 거쳐서 생성 된 최종 프로젝트 폴더 구조이다.

     

    system-core 모듈은 독립적으로 실행 될 수 없는 공통 로직을 모아놓은 모듈이다.
    따라서 system-core 하위에 있는 build.gradle 파일을 열고 다음 부분을 추가한다.
    bootJar.enabled(false) : 실행 가능한 jar 파일 생성 여부 (false는 실행 불가능함)
    jar.enabled(true) : jar 파일 생성 여부

     

    system-core 모듈에 null을 체크하는 간단한 Util 클래스를 만든다.

     

    이번에는 spring-boot-common-super-application 모듈 하위의 build.gradle 파일을 열고 해당 모듈에서 사용하려는 jar 파일들을 명시한다.
    spring-boot-common-super-application에서 system-core에서 생성한 CommonUtil 클래스를 참조하기 위해서 아래와 같이 해당 모듈을 import한다.
    implementation project(":common:system-core")

     

    build.gradle 파일에 적용한 설정을 반영하기 위해 전체 gradle 설정을 reimport 한다.

     

    스프링 부트를 실행시키는 main 함수를 가지고 있는 Application 클래스를 생성한다.

     

    테스트를 위한 controller 클래스를 생성한다.
    해당 controller에서는 system-core에 있는 CommonUtil을 import해와서 isNull() 함수를 실행한다.

     

    spring-boot-common-super-application을 실행시킨다.
    실행 시키는 방법은 아래와 같이 bootRun 태스크를 통해서 실행하거나, 위에서 생성한 Application 클래스의 main 함수를 실행한다.

     

    application 실행 후 아래와 같이 테스트해봄으로써 정상적으로 system-core 모듈을 import해와서 사용되는 것을 볼 수 있다.

     

    마지막으로 최종 구성 된 프로젝트 구조는 아래와 같다.

     

    이상으로 gradle을 이용해서 멀티 모듈 프로젝트를 구성하는 방법에 대해서 알아보았습니다.

    '자바 > 기타' 카테고리의 다른 글

    [Java] JPA (Java Persistence API)  (0) 2021.03.23
    [JAVA] WebSocket  (0) 2021.03.22
    [UML] 유스케이스 다이어그램  (0) 2021.02.02
    [IntelliJ] 단축키 정리  (0) 2020.09.11
    [JAVA] CommonUtil 클래스  (0) 2020.09.09

    댓글

Designed by Tistory.