pooney
article thumbnail

 

 

스프링 부트는 내장 톰켓이 존재하여 jar를 이용한 손쉬운 배포가 가능합니다. 때문에 아래와 같이 처음 프로젝트를 생성하면서 jar를 이용한 패킹을 선택하지만 외부 톰켓을 이용하여 배포해야하는 경우에는 WAR를 이용한 배포를 하는 경우가 많습니다. 그러면 어떻게 war를 이용하여 배포를 하는지 설명하겠습니다.  

 

 

 

 

 

 

 

Gradle + War 배포

 

 

※ 신규 프로젝트를 생성해주세요. 신규 프로젝트 생성하는 방법은 생략 하겠습니다.  

시스템 환경 
  • Spring boot (Framework)
  • Gradle (Build Tool)
  • Intellj (IDEA)

 

 

 

 

 

 

▶ 처음 Intellj 우축 상단을 보면 Gradle이 있을 것입니다. bulid를 보면 bootJar , jar는 존재하지만 war는 존재하지 않습니다. war를 배포하기 위해서는 간단한 작업이 필요합니다. 

 

 

 

 

 

 

 

그러면 아래 bulid.gradle에 가서 아래의 내용을 추가하시고 bulid를 해주세요. 

bulid.gradle 

plugins {
    id 'org.springframework.boot' version '2.3.0.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
    id 'war' // <-- 추가 
}




bootWar {  <-- 추가 
    archiveBaseName = 'web' // <--war 패키징 시 이름 설정 
    archiveFileName = 'web.war' //<--war 패키징 시 이름 설정 
    archiveVersion = "0.0.0"
}



// 내장톰켓을 사용하지 않음.. (providedRuntime)
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 

 

 

 

 

이후 다시 보시면 bootWar , war가 생긴것을 확인 할 수 있습니다. 

 

 

 

 

 

 

그리고 마지막으로 {프로젝트}Application.class에 SpringBootServletInitializer 를 상속 받고 configure

@Override 해주시면 됩니다. 

@SpringBootApplication
public class WebApplication extends SpringBootServletInitializer {

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

 

 

 

 

 

Bulid를 진행하시고 Gradle -> bulid -> bootWar를 클릭해주세요.

 

 

 

 

왼쪽 Project에서 bulid/libs를 확인하면 설정한 web.war파일 이 생긴것을 확인 할 수 있습니다.  이를 이용하여 Tomcat에 올려서 구동하시면 정상적으로 서비스가 동작할 것입니다. 

 

 

profile

pooney

@pooney

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!