반응형

1. 시험환경

    ˙ SpringBoot

    ˙ Gradle

 

2. 목적

    ˙ Spring Project 빌드시 JAR 또는 WAR Build의 차이점에 대하여 알아보자.

 

3. 적용

    ① JAR(Java Archive)

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

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

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

        - 패키지 실행 방법 : java -jar package.jar

        - 참고 : https://ko.wikipedia.org/wiki/JAR_(%ED%8C%8C%EC%9D%BC_%ED%8F%AC%EB%A7%B7) 

 

JAR (파일 포맷) - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

    ② WAR (Web Application Archive)
        - 웹 애플리케이션을 구성하는 자바 클래스와 웹 관련 자원(JSP, Servlet, JAR, Class, XML, HTML, Javascript)을 포함하는

           파일 등을 묶은 압축 파일 포맷이다.

        - 별도의 Web Server 또는 WAS(Tomcat)가 필요하다.

        - 패키지 실행 방법 1 (외부 Tomcat 사용) : apache-tomcat-버전/webapps/package.war 위치에 파일 복사 후 Tomcat 실행

        - 패키지 실행 방법 2 (내장 Tomcat 사용) : java -jar package.war


    ③ Build Package "war" 설정

        - build.gradle 파일

1
2
3
4
5
apply plugin: 'war'
 
dependencies {
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}
cs

 

    ④ 클린 및 빌드

        - $./gradlew clean build

 

4. 결과

    ˙ RestAPI와 같이 Web Page(JSP)가 포함되지 않은 Spring 프로젝트는 jar로 빌드한다.

    ˙ Web Page(JSP)가 포함된 spring 프로젝트는 war로 빌드한다.

        - 만약, jsp 파일 등이 포함된 프로젝트를 jar 빌드 후 페이지 요청하면, 404 에러가 발생하고  Web Page가 열리지 않는다.

반응형

+ Recent posts