멀티모듈 Gradle을 이용하여 빌드하기
목차
1. common모듈의 빌드 옵션 추가
build.gradle
...
tasks.bootJar{ enabled = false }
tasks.jar{ enabled = true }
...
해당 옵션 설정 이유
task.bootJar
- 기본값: true
- XXX.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. 애플리케이션 기동하기
- jar 파일 위치로 이동
- jar 실행
java -jar api-0.0.1.SNAPSHOT.jar