프로젝트마다 환경에 맞게 사용하고는 있지만 JAR와 WAR에 대한 명확한 개념이 머리속에 자리잡을 수 있도록 정리해보려고 한다.
두 가지 모두 자바 프로그램을 배포하기 위한 주요 패키지 형식이다.
1. JAR
- java 클래스, 리소스 파일, 라이브러리 등을 포함한다.
- 주로 독립 java 어플리케이션 혹은 라이브러리를 패키징할 때 사용된다.
- 명령줄에서 'java -jar' 명령을 통해 실행할 수 있다.
2. WAR
- servlet, JSP, html, css, js 등의 웹 관련 파일과 설정 파일을 포함한다.
- 주로 웹 애플리케이션을 패키징할 때 사용된다.
- 웹 애플리케이션 서버(tomcat, wildFly 등) WAS에 배포되어 실행된다.
- 웹 애플리케이션과 관련된 특정 폴더 구조를 갖고 있다.
WEB-INF : WAR 파일의 핵심 디렉토리로 웹 애플리케이션의 설정 및 리소스를 담고 있다.
→ web.xml 파일이 위치하며 여기에는 서블릿 매핑, 리스너, 필터, 세션 설정 등과 같은 전반적인 구성을 정의한다.