Vedere generală
În acest tutorial rapid, ne vom concentra pe diferențele dintre împachetarea JAR și WAR în Java.
În primul rând, vom defini fiecare opțiune de împachetare separat. După aceea, vom rezuma diferențele dintre ele.
Pachetare JAR
Simplu spus, JAR – sau Arhiva Java – este un format de fișier pachet. Fișierele JAR au extensia .jar și pot conține biblioteci, resurse și fișiere de metadate.
În esență, este un fișier comprimat care conține versiunile comprimate ale fișierelor .class și resursele bibliotecilor și aplicațiilor Java compilate.
De exemplu, iată o structură simplă a unui fișier JAR:
META-INF/ MANIFEST.MFcom/ baeldung/ MyApplication.class
Arhiva META-INF/MANIFEST.MF poate conține metadate suplimentare despre fișierele stocate în arhivă.
Puteți crea un fișier JAR folosind comanda jar sau cu instrumente precum Maven.
WAR Packaging
WAR înseamnă Web Application Archive sau Web Application Resource. Aceste fișiere de arhivă au extensia .war și sunt folosite pentru a împacheta aplicații web pe care le putem implementa pe orice container Servlet/JSP.
Iată un exemplu de aspect al structurii unui fișier WAR tipic:
În interior, acesta are un director META-INF care conține informații utile în MANIFEST.MF despre arhiva web. Directorul META-INF este privat și nu poate fi accesat din exterior.
Pe de altă parte, conține și directorul public WEB-INF cu toate resursele web statice, inclusiv pagini HTML, imagini și fișiere JS. Mai mult decât atât, conține fișierul web.xml, clasele servlet și bibliotecile.
Potem folosi aceleași instrumente și comenzi pe care le-am folosit pentru a construi un JAR pentru a construi o arhivă .war.
Diferențe cheie
Atunci, care sunt diferențele cheie între aceste două tipuri de arhive?
Prima și cea mai evidentă diferență este extensia fișierului. JAR-urile au extensia .jar, în timp ce fișierul WAR are extensia .war.
A doua diferență principală este scopul lor și modul în care funcționează. Fișierele JAR ne permit să împachetăm mai multe fișiere pentru a le utiliza ca bibliotecă, plugin sau orice fel de aplicație. Pe de altă parte, fișierele WAR sunt utilizate doar pentru aplicații web.
Structura arhivelor este, de asemenea, diferită. Putem crea un JAR cu orice structură dorită. În schimb, WAR are o structură predefinită cu directoare WEB-INF și META-INF.
În cele din urmă, putem rula un JAR din linia de comandă dacă îl construim ca un JAR executabil fără a utiliza software suplimentar. Sau, îl putem utiliza ca bibliotecă. În schimb, avem nevoie de un server pentru a executa un WAR.
Concluzie
În acest articol rapid, am comparat tipurile de împachetare Java .jar și .war. Făcând acest lucru, am observat, de asemenea, că, deși ambele folosesc același format de fișier ZIP, există câteva diferențe importante.
Începeți să lucrați cu Spring 5 și Spring Boot 2, prin intermediul cursului Învățați Spring:
>>VEZI CURSUL
.