코딩마을방범대

실행 가능한 war 파일 만들기 본문

💡 백엔드/Java

실행 가능한 war 파일 만들기

신짱구 5세 2023. 6. 8. 09:56
728x90

 

1. 톰캣 서버에 배포를 위해 war 파일을 생성하였으나 

수동으로 생성하여 실행하니 Error: Invalid or corrupt jarfile 파일명.war 라는 오류가 발생함

 

2. war 프로젝트로 생성 시 자동으로 생성되는 SNAPSHOT을 수동 Exploded에 추가해서 생성해보니 아래와 같은 오류 발생

> java -jar test.war

war에 기본 Manifest 속성이 없습니다.

 

 

 

 

이 때 부터 뭔가 가능할 것 같아서 찾아보았더니 실행가능한 war 파일이 빌드 시 자동 생성된다는 것이였다!

( 물론 war 프로젝트거나 build.gradle을 설정했을 경우에만 )

 

 

프로젝트 생성 시 war 프로젝트로 생성하지 않았어도

아래와 같이 build.gradle을 설정하고 Add Frameworks Support에서 web Application 선택 후 빌드 시,

 

build -> libs 폴더에 war 파일이 자동 생성된다. (여태 그걸 몰라서 수동으로 만듬..)

plugins {
	id 'war'
    ...
}

...

bootWar {
	archiveFileName = "지정할 이름.war"
}
bootWar{} 는 이름을 설정해주기 위해 입력한 것으로, 이름 설정이 필요 없다면 굳이 안 넣어도됨!
( default: 프로젝트명-0.0.1-SNAPSHOT.war로 생성됨 )

 

 

짜잔!!!!!!!!!!

 

 

 

 


 

💡 TIPS

 

WAR 파일 배포 시 주의할 점

1. 외장 톰캣을 이용할 경우 Main 클래스에 SpringBootServletInitializer 상속이 필요함

@SpringBootApplication
public class MainClass extends SpringBootServletInitializer {
	
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MainClass.class);
    }

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

 

 


 

참고사이트

[Spring Boot]war로 배포하기 (Gradle + 내/외장 톰캣)

 

 

 

 

 

728x90