Přehled
V tomto krátkém kurzu se zaměříme na rozdíly mezi balíčky JAR a WAR v jazyce Java.
Nejprve si definujeme každou možnost balení zvlášť. Poté shrneme jejich rozdíly.
Balení JAR
Zjednodušeně řečeno, JAR – neboli archiv Javy – je formát souboru balíčku. Soubory JAR mají příponu .jar a mohou obsahovat knihovny, zdroje a soubory metadat.
V podstatě se jedná o zazipovaný soubor obsahující komprimované verze souborů .class a zdrojů zkompilovaných knihoven a aplikací jazyka Java.
Například zde je jednoduchá struktura souboru JAR:
META-INF/ MANIFEST.MFcom/ baeldung/ MyApplication.class
META-INF/MANIFEST.MF může obsahovat další metadata o souborech uložených v archivu.
Soubor JAR můžeme vytvořit pomocí příkazu jar nebo pomocí nástrojů, jako je Maven.
Balení WAR
WAR znamená Web Application Archive nebo Web Application Resource. Tyto archivní soubory mají příponu .war a používají se k zabalení webových aplikací, které můžeme nasadit v libovolném kontejneru Servlet/JSP.
Tady je příklad rozložení typické struktury souboru WAR:
Uvnitř má adresář META-INF, který v souboru MANIFEST.MF uchovává užitečné informace o webovém archivu. Adresář META-INF je soukromý a není přístupný zvenčí.
Na druhé straně obsahuje také veřejný adresář WEB-INF se všemi statickými webovými zdroji, včetně stránek HTML, obrázků a souborů JS. Kromě toho obsahuje soubor web.xml, třídy servletů a knihovny.
Pro sestavení archivu .war můžeme použít stejné nástroje a příkazy, které jsme použili pro sestavení JAR.
Klíčové rozdíly
Jaké jsou tedy klíčové rozdíly mezi těmito dvěma typy archivů?
Prvním a nejzřejmějším rozdílem je přípona souboru. Soubory JAR mají příponu .jar, zatímco soubor WAR má příponu .war.
Druhým hlavním rozdílem je jejich účel a způsob fungování. Soubory JAR nám umožňují zabalit více souborů, abychom je mohli použít jako knihovnu, zásuvný modul nebo jakýkoli druh aplikace. Naproti tomu soubory WAR se používají pouze pro webové aplikace.
Rozdílná je také struktura archivů. Můžeme vytvořit JAR s libovolnou požadovanou strukturou. Naproti tomu WAR má předdefinovanou strukturu s adresáři WEB-INF a META-INF.
Koneckonců JAR můžeme spustit z příkazového řádku, pokud jej sestavíme jako spustitelný JAR bez použití dalšího softwaru. Nebo jej můžeme použít jako knihovnu. Naproti tomu ke spuštění WAR potřebujeme server.
Závěr
V tomto krátkém článku jsme porovnali typy balíčků Java .jar a .war. Přitom jsme si také všimli, že ačkoli oba používají stejný formát souboru ZIP, existuje mezi nimi několik důležitých rozdílů.
Začněte pracovat se Spring 5 a Spring Boot 2 prostřednictvím kurzu Learn Spring:
>> VYHLEDEJTE SI KURZ
.