본문 바로가기

Spring

[Spring] Gradle jar 빌드파일 만들기 (Feat.Intellij && Terminal)

728x90
반응형
SMALL

빌드 파일을 만드는 이유

  • 웹을 개발 하는데 있어서 중요한 것 중 하나가 바로 배포 이다.
  • Spring Boot 프로젝트를 배포 하는 방법 중 하나인 Gradle을 사용하여 Jar 파일 빌드 및 실행 하는 방법에 대해서 정리 해보고자 한다.

개발 환경

  • Gradle : 8.4
  • Java: 17
  • Spring Boot : 3.2.0
  • MacOS + Intellij Ultimate

Build 파일을 만드는데 IDE (본인은 인텔리제이 Ultimate) 로 만드는 방법과 Terminal 명령어로 만드는 방법에 대해서 정리

 

Why Jar파일?

  • 확장자는 .jar
  • Jar 이란 Java Archive의 약자로 자바 클래스 파일, 텍스트 파일, 이미지 파일 등을 하나의 파일로 모아서 배포하기 위한 패키지 파일
  • 확장자 .zip 과 같은 압축 파일이라고 생각해도 무방하다는 글을 본적이 있다.
  • Spring Boot 의 프로젝트를 사용할 때 Spring Boot의 내장 톰캣을 사용하기 위해 (Jar을 통해 포함 시킬 수 있음) .jar로 압축 및 배포 한다고 본인은 이해하고 있다.

Jar파일 빌드 With Intellij

인텔리제이 오른쪽에 있는 코끼리(Gradle)

  • Tasks -> build -> bootJar(더블클릭) 혹은 build(더블클릭)
    • bootJar : 프로젝트의 jar 파일을 만드는데 목적을 가지고 있고 그만큼 빌드하는데 속도가 빠르다.
    • build : build의 내부 동작에 bootJar의 동작도 포함하고 test 코드가 있다면 확인 하고 (check 한다고 한다.) test 코드 이외의 확인 작업을 하고 .jar 파일을 만드는 것이라고 한다.
    • 빠르게 jar파일 만을 만들고 싶다면 bootJar
    • 테스트 코드를 실행는 등의 다른 작업들에 대한 항목에 대해 확인 하고 싶다면 build를 선택 하면 된다.
  • 빌드 파일은 상위 프로젝트 안에 build/libs 안에 생성 된다. [해당 화면은 bootJar 로 생성]

빌드 파일 생성 위치

  • 빌드 되어있는 파일을 지우고 싶다면 clean을 더블 클릭

Jar파일 빌드 With Terminal

  • 서버 내부에서 빌드파일을 만들거나 할때, IDE가 지원하는 동작을 하지 못할 때가 있으므로 Terminal 로 실행 하는 방법 또한 알아두면 좋다는 생각을 했다.

도전

cd [프로젝트 최 상위 디렉토리]
  • 작업 할 프로젝트로 내부 진입
  • ls 명령어를 통해 gradlew 실행 파일을 확인 할 수 있다.
Mac 혹은 Linux
생성
./gradlew build

삭제
./gradlew clean


윈도우의 경우
생성
./gradlew.bat build

삭제
./gradlew.bat clean
  • 빌드 실행 + 빌드 삭제
cd ./build/libs
  • Jar 파일이 빌드 된 디렉토리로 이동 가능

 

Jar 파일 실행시키는 명령어

java -jar [.jar파일 이름]

예시
java -jar proejct-0.0.1-SNAPSHOT.jar

 

Terminal에서 실행시킨 모습 예시

터미널에서 .jar파일이 만들어진걸 확인 할 수 있다.

 

 

 

Build 할 때, 2개의 jar 파일이 생긴다면? 

https://jk25.tistory.com/181

 

[Spring] Gradle 빌드 할때 2개의 jar 파일 + 해결 방법 (executable jar && Plain jar)

Spring Gradle Build https://jk25.tistory.com/180 [Spring] Gradle jar 빌드파일 만들기 (Feat.Intellij && Terminal) 빌드 파일을 만드는 이유 웹을 개발 하는데 있어서 중요한 것 중 하나가 바로 배포 이다. Spring Boot 프

jk25.tistory.com

 

728x90
반응형
LIST