본문 바로가기
Study Note/Java

JAVA_ JAR, WAR, EAR 차이점

by 시뮝 2019. 9. 12.
728x90

JAR, WAR, EAR 차이점

※ J2EE 애플리케이션에서 모듈은 기능에 따라 EAR, JAR 및 WAR로 패키지됩니다. 

 

1. JAR (java archive)

: 엔터프라이즈 Java Bean (클래스 파일) 및 EJB 배치 디스크립터를 포함하는 EJB 모듈은 .jar 확장을 갖는 JAR 파일로 압축됩니다. 

 

2. WAR (web archive)

: 서블릿 클래스 파일, JSP 파일, 지원 파일, GIF 및 HTML 파일을 포함하는 웹 모듈은 확장자가 .war (웹 아카이브) 인 JAR 파일로 패키지됩니다. 

 

3. EAR (enterprise archive)

: 위의 모든 파일 (.jar 및 .war)은 확장자가 .ear (enterprise archive) 인 JAR 파일로 패키지되어 Application Server에 배치됩니다.

 

4. JAR, WAR, EAR 차이점

JAR, WAR, EAR 파일의 가장 큰 차이점은 서로 다른 환경을 대상으로한다는 점입니다. EAR 파일을 실행하려면 완전한 Java EE (Java Platform, Enterprise Edition) 또는 WebSphere 또는 JBoss와 같은 Jakarta Enterprise Edition (EE) 호환 애플리케이션 서버가 필요합니다. WAR 파일은 Java EE Web Profile 호환 응용 프로그램 서버 만 실행하면되고 JAR 파일은 Java 설치 만 필요합니다.

JAR, WAR, EAR 파일에 적용되는 내부 제한 사항 및 요구 사항도 있습니다. EAR 파일 자체에는 META-INF라는 폴더에 application.xml 파일이 있어야합니다. WAR 파일에는 WEB-INF 폴더에 포함 된 web.xml 파일이 필요합니다. Java 파일에는 이러한 요구 사항이 없습니다.

 

Spring Boot 및 Eclipse MicroProfile과 같은 최신 마이크로 서비스 프레임 워크는 Docker와 같은 소프트웨어 컨테이너 및 RedHat OpenShift와 같은 컨테이너 오케스트레이션 도구에 직접 배치 할 수있는 실행 가능한 JAR 파일로 애플리케이션을 배치합니다.

 

 

JAR, WAR, EAR 파일을 작성하는 방법

JAR, WAR, EAR 파일은 모두 표준 압축 알고리즘을 사용하므로 모든 표준 압축 도구로 작성할 수 있습니다. 그러나 JDK에는 jar.exe라는 특수 유틸리티가 포함되어 있습니다.이 유틸리티는 웹, 엔터프라이즈 및 Java 응용 프로그램을 해당 유형으로 패키지하고 압축합니다.

또한 CI 워크 플로의 일부로 JAR, WAR, EAR 파일로 응용 프로그램을 자동으로 패키지화하는 많은 유명한 DevOps 도구가 있습니다. 예를 들어, Jenkins 파이프 라인의 결론은 종종 테스트 된 애플리케이션을 적절한 아카이브에 패키지하기 위해 Ant, Maven 또는 Gradle과 같은 빌드 도구를 호출하는 것입니다.

 

 

 

https://stackoverflow.com/questions/5871053/difference-between-jar-and-war-in-java

 

용어설명 참고 사이트(EN) : https://stackoverflow.com/questions/1594667/war-vs-ear-file

차이점 참고 사이트(EN) : https://www.theserverside.com/feature/What-are-the-differences-between-EAR-JAR-and-WAR-files

728x90

댓글