localhost:8080에 개발중이던 gradle 스프링 부트 프로젝트를 .jar 파일로 빌드해보겠다.
# jar 파일이란?
프로젝트를 구성하기 위해 개발 단계에서 작성한 클래스, 리소스, 속성 파일 등을 실행 가능한 하나의 자바 패키징 파일로 압축해놓은 것. 자바 애플리케이션을 쉽게 구동하고 배포하기 위해 필요하다.
비슷한 개념으로 WAR 파일이 있는데, 웹 관련 자원을 포함한 jar 파일을 war이라고 하는 듯 하다. 둘의 차이는 크지 않지만 다음과 같은 WAR 패키징 파일의 한계상 꼭 그를 사용해야하는 환경이 아니면 JAR을 이용하는 것이 더 좋을 것 같다.
1. 사전 정의된 구조를 따라야 한다는 점
2. 톰캣 등의 웹 서버 혹은 웹 컨테이너가 필요하다는 점
JAR vs WAR 배포의 차이
기본적으로 JAR, WAR 모두 Java의 jar 옵션 (java -jar)을 이용해 생성된 압축(아카이브) 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징 한 것입
velog.io
# 빌드 툴로 gradle을 쓰고 있을 때 .jar 파일 빌드하기
build.gradle 파일에 기본적인 configuration을 진행한다.
bootJar {
archivesBaseName = '원하는 프로젝트 이름'
archiveFileName = '원하는 jar 파일 이름'
archiveVersion = "원하는 버전 ex)0.0.1"
}
그 뒤는 매우 간단하다. intellij를 사용하고 있다면 gradle 빌드 도구를 연다. 오른쪽 코끼리 로고가 붙은 Gradle 버튼을 클릭하면 된다.
그 뒤 보이는 창에서 bootJar 버튼을 더블클릭한다. configuration에 지정된 이름으로 gradle이 빌드를 시작한다. (밑 참고)
gradle이 프로젝트를 잘 빌드했음을 콘솔 창에서 확인할 수 있다.
이제 프로젝트 루트 폴더에서 ./build/libs 디렉토리를 확인해보면..
위와같이 내가 설정한 이름으로 jar 패키지 파일이 생성되었음을 확인할 수 있다.
이렇게 생성된 jar 파일을 AWS의 elastic beanstalk을 이용해 배포해보도록 하겠다!