Spring boot

[Spring boot] 배포 패키징 jar 에서 war로 변경

민뭉아치 2022. 4. 10. 02:33

JSP 템플릿을 사용하여 화면 구성을 하기 위해 기존의 jar 프로젝트에서 war 프로젝트로 변경해보자.

먼저 간단하게 jar와 war의 차이점을 알아보자.

해당 프로젝트는 Gradle 기준으로 변경하였다. 

 

Jar란?

여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스 및 메타데이터를 하나의 파일로 모아서

자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다.

JRE(JAVA Runtime Environment)만 있어도 실행 가능하다.

war란?

웹 애플리케이션을 구성하는 자바 클래스, 자바 서버 페이지, 관련 XML 파일 등을 묶은 압축 파일 포맷이다.

원하는 구성을 할 수 있는 Jar와 달리 War는 WEB-INF 및 META-INF 디렉토리로 사전 정의된 구조를 사용한다.

별도의 웹서버(WEB)나 웹 컨테이너(WAS)가 필요하다.

 

bulid.gradle 수정

1. plugin 추가

plugins {
	...
	id 'java'
	id 'war'
}

2. bootWar 추가

bootWar {
    enabled = true
}

3. dependency 추가

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-tomcat'
}

 

Applicatoin.class 수정

SpringBootServletInitializer를 상속받아서 SpringApplicationBuilder을 오버라이딩 해준다. 

@SpringBootApplication
public class TestApplication extends SpringBootServletInitializer {
	
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(TestApplication.class);
	}
	
	public static void main(String[] args) {
		SpringApplication.run(TestApplication.class, args);
	}

}

 

참고

 

[Java] JAR WAR 차이점 및 특징 ( + EAR )

JAR (Java Archive) WAR (Web Application Archive) 모두 JAVA의 jar 툴을 이용하여 생성된 압축(아카이브) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 있도록 관련 파일(리소스, 속성파일 등).

ifuwanna.tistory.com

 

SpringBoot 배포 jar -> war로 변경

스프링부트 배포시 일반적으로 내장톰캣을 사용할 경우 jar로 배포한다. 그러나 외장톰캣을 사용하든 내장...

blog.naver.com

 

반응형