Różnice pomiędzy opakowaniami JAR i WAR

Przegląd

W tym krótkim poradniku, skupimy się na różnicach pomiędzy opakowaniami JAR i WAR w Javie.

Po pierwsze, zdefiniujemy każdą opcję opakowania osobno. Następnie podsumujemy ich różnice.

Pakowanie JAR

Po prostu, JAR – lub Java Archive – jest formatem pliku pakietu. Pliki JAR mają rozszerzenie .jar i mogą zawierać biblioteki, zasoby i pliki metadanych.

Podstawowo, jest to plik zzipowany zawierający skompresowane wersje plików .class oraz zasoby skompilowanych bibliotek i aplikacji Java.

Na przykład, oto prosta struktura pliku JAR:

META-INF/ MANIFEST.MFcom/ baeldung/ MyApplication.class

Plik META-INF/MANIFEST.MF może zawierać dodatkowe metadane o plikach przechowywanych w archiwum.

Plik JAR możemy utworzyć za pomocą polecenia jar lub za pomocą narzędzi takich jak Maven.

Pakiety WAR

WAR to skrót od Web Application Archive lub Web Application Resource. Te pliki archiwalne mają rozszerzenie .war i są używane do pakowania aplikacji internetowych, które możemy wdrożyć na dowolnym kontenerze Servlet/JSP.

Tutaj przykładowy układ typowej struktury pliku WAR:

Wewnątrz niego znajduje się katalog META-INF przechowujący użyteczne informacje w MANIFEST.MF o archiwum internetowym. Katalog META-INF jest prywatny i nie można się do niego dostać z zewnątrz.

Z drugiej strony, zawiera również katalog publiczny WEB-INF ze wszystkimi statycznymi zasobami internetowymi, w tym stronami HTML, obrazkami i plikami JS. Co więcej, zawiera plik web.xml, klasy serwletów i biblioteki.

Możemy użyć tych samych narzędzi i poleceń, których użyliśmy do zbudowania JAR-a, aby zbudować archiwum .war.

Kluczowe różnice

Więc, jakie są kluczowe różnice między tymi dwoma typami archiwów?

Pierwszą i najbardziej oczywistą różnicą jest rozszerzenie pliku. Pliki JAR mają rozszerzenie .jar, podczas gdy pliki WAR mają rozszerzenie .war.

Drugą główną różnicą jest ich przeznaczenie i sposób działania. Pliki JAR pozwalają nam na pakowanie wielu plików w celu użycia ich jako biblioteki, wtyczki lub dowolnego rodzaju aplikacji. Z drugiej strony, pliki WAR są używane tylko dla aplikacji internetowych.

Inna jest również struktura tych archiwów. Możemy stworzyć JAR o dowolnej, pożądanej strukturze. W przeciwieństwie do tego, WAR ma predefiniowaną strukturę z katalogami WEB-INF i META-INF.

Wreszcie, możemy uruchomić JAR z linii poleceń, jeśli zbudujemy go jako wykonywalny JAR bez użycia dodatkowego oprogramowania. Możemy też użyć go jako biblioteki. W przeciwieństwie do tego, potrzebujemy serwera, aby wykonać WAR.

Wniosek

W tym krótkim artykule porównaliśmy typy opakowań .jar i .war Java. W ten sposób zauważyliśmy również, że chociaż oba używają tego samego formatu pliku ZIP, istnieje kilka istotnych różnic.

Zacznij przygodę ze Spring 5 i Spring Boot 2, dzięki kursowi Learn Spring:

>> CHECK OUT THE COURSE

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.