멀티모듈 Gradle을 이용하여 빌드하기

목차

  1. 1. common모듈의 빌드 옵션 추가
    1. 해당 옵션 설정 이유
      1. task.bootJar
      2. task.jar
  2. 2. 빌드하기
  3. 3. 애플리케이션 기동하기

1. common모듈의 빌드 옵션 추가

build.gradle

...

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

...

해당 옵션 설정 이유

task.bootJar

  • 기본값: true
  • XXX.jar 파일이 생성됨
    • jar파일 안에는 애플리케이션 실행에 필요한 의존성, 클래스, 리소스들을 포함하고 있음
    • -> jar파일을 가지고 애플리케이션을 실행할 수 있음
      • 메인클래스를 찾게 되는데 main()이 있는 CommonApplication클래스를 삭제했기 때문에 오류가 발생할 수 있음.

        task.jar

  • 기본값: true
  • XXX-plain.jar 파일이 생성됨
  • bootJar를 통해 만든 XXX.jar파일과의 차이점
    • plain.jar를 의존성을 포함하고 있지 않음(클래스와 리소스들만 포함하고 있음)
    • 따라서 java -jar … 을 통해 애플리케이션을 실행할 수 없게 됨.

common모듈은 다른 모듈들에서 공통적으로 사용하는 것들을 모아놓은 것이기 때문에 애플리케이션을 실행할 필요가 없음 -> task.bootJar 를 false로 설정.

  • api모듈의 경우 기본값 그대로 사용할 것이기 때문에 별다른 설정을 하지 않아도 됨.

2. 빌드하기

./gradlew clean :api:buildNeeded --stacktrace --info --refresh-dependencies -x test

아래와 같이 각 모듈에 build 폴더가 생성되고 libs 폴더 하위에 빌드된 jar파일들이 만들어진 것을 볼 수 있다.

3. 애플리케이션 기동하기

  1. jar 파일 위치로 이동
  2. jar 실행
    java -jar api-0.0.1.SNAPSHOT.jar
    


맨 위로 ↑

Copyright © hyunbenny. 공부한 내용을 끄적거리는 낙서장입니다.