[Spring] Spring boot 프로젝트 Jar → War 변경

·2024년 3월 21일

Spring

목록 보기
2/3

💡 [Spring boot] Jar → War 변경

Jar로 프로젝트 생성했는데, War 파일로 빌드하고 싶을 경우 (Maven일 경우)

1. pom.xml 파일에 내용 추가

  • 프로퍼티값을 war로 작성
    <packaging>war</packaging>

  • jar와는 다르게 추가적으로 dependency 설정이 필요
    → 컴파일 단계에서만 tomcat 라이브러리를 이용(scope를 provided로 지정), 배포 이후에는 내장 tomcat이 아닌 이미 존재하는 tomcat 서버를 이용하기 위함
    <scope>provided</scope>

  <packaging>war</packaging>
  ...
  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>	
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <scope>provided</scope>
      </dependency>
  ...
  </dependencies>

2. Spring Boot Application 클래스에 소스 추가하기

  • 프로젝트에서 main 메소드가 존재하고 spring boot 앱을 시작하는 역할을 하는 클래스에 SpringBootServletInitializer를 상속(extends) 하고, @Override 메서드를 추가하여 SpringApplicationBuilder 생성
package kr.spring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class MovieboxApplication extends SpringBootServletInitializer{

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

}

/*
 public class MovieboxApplication {

	public static void main(String[] args) {
		SpringApplication.run(MovieboxApplication.class, args);
	}

}
 */

0개의 댓글