[프로젝트] 스프링부트 서버 배포: 인텔리제이 war, jar파일 export하기

Wonkyun Jung·2023년 7월 3일
0

프로젝트

목록 보기
1/1
post-thumbnail

스프링부트 RestAPI 서버를 배포하기 위한 전처리 과정이 필요. swagger이외에 AWS EC2, Netlify, Heroku 등등 서버에 배포하려면 프로젝트를 war또는 jar파일로 export해야한다.


JAR, WAR 파일

기본적으로 JAR, WAR 모두 Java의 jar 옵션 (java -jar)을 이용해 생성된 압축(아카이브) 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징 한 것


JAR (Java Archive)

  • JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일
  • Class (JAVA리소스, 속성 파일), 라이브러리 파일을 포함함
    JRE(JAVA Runtime Environment)만 있어도 실행 가능함 (java -jar 프로젝트네임.jar)

WAR (Web Application Archive)

  • Servlet / Jsp 컨테이너에 배치할 수 있는 웹 애플리케이션(Web Application) 압축파일 포맷
    웹 관련 자원을 포함함 (JSP, Servlet, JAR, Class, XML, HTML, Javascript)

  • 사전 정의된 구조를 사용함 (WEB-INF, META-INF)
    별도의 웹서버(WEB) or 웹 컨테이너(WAS) 필요

  • JAR파일의 일종으로 웹 애플리케이션 전체를 패키징 하기 위한 JAR 파일이다.


어떤 걸 써야하는가?

  • SpringBoot를 사용한다면 Jar

  • JAR, WAR 파일 애플리케이션 리소스를 패키징 하는 방법에 차이가 있을 뿐, 뭘 사용해야 하느냐는 개발자의 판단에 따름.

  • 꼭 WAR를 사용해야만 하는 이유(꼭 JSP를 사용하여 화면을 구성해야 한다 / 외장 WAS를 이용할 계획이 있다)가 아니라면 뭘 사용할지에 대한 완벽한 해답은 없다.

하지만 Sprinag boot에서 가이드하는 표준은 JAR(JSP, 외장톰켓을 안사용)이니까 JAR를 사용하여 서비스하는 것이 좋다.


인텔리제이 프로젝트 -> war파일 만들기

상위 탭에 view -> Tool Windows -> Maven 클릭


clean -> complie -> install을 순서대로 누른다


.m2 폴더에 내 패키지 폴더를 보면 war파일이 만들어져있다.



인텔리제이 프로젝트 -> jar파일 만들기

File -> Project Structure -> Artifacts -> + 버튼 -> JAR -> From modules with dependences 클릭


Build -> Build Artifacts 클릭


Action -> Build 클릭


out폴더 -> artifacts -> project.jar 파일 생성

0개의 댓글