Differenze tra il packaging JAR e WAR

Panoramica

In questo rapido tutorial, ci concentreremo sulle differenze tra il packaging JAR e WAR in Java.

Prima, definiremo ogni opzione di packaging separatamente. In seguito, riassumeremo le loro differenze.

Pacchetto JAR

In parole povere, JAR – o Archivio Java – è un formato di file di pacchetto. I file JAR hanno l’estensione .jar e possono contenere librerie, risorse e file di metadati.

In sostanza, è un file compresso che contiene le versioni compresse dei file .class e le risorse delle librerie e delle applicazioni Java compilate.

Per esempio, ecco una semplice struttura di file JAR:

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

Il file META-INF/MANIFEST.MF può contenere metadati aggiuntivi sui file memorizzati nell’archivio.

Possiamo creare un file JAR usando il comando jar o con strumenti come Maven.

WAR Packaging

WAR sta per Web Application Archive o Web Application Resource. Questi file di archivio hanno l’estensione .war e sono usati per impacchettare applicazioni web che possiamo distribuire su qualsiasi contenitore Servlet/JSP.

Ecco un esempio di struttura di un tipico file WAR:

Al suo interno, ha una directory META-INF che contiene informazioni utili nel MANIFEST.MF sull’archivio web. La directory META-INF è privata e non è accessibile dall’esterno.

D’altra parte, contiene anche la directory pubblica WEB-INF con tutte le risorse web statiche, incluse pagine HTML, immagini e file JS. Inoltre, contiene il file web.xml, le classi servlet e le librerie.

Possiamo usare gli stessi strumenti e comandi che abbiamo usato per costruire un JAR per costruire un archivio .war.

Differenze chiave

Quindi, quali sono le differenze chiave tra questi due tipi di archivio?

La prima e più evidente differenza è l’estensione del file. I JAR hanno l’estensione .jar, mentre il file WAR ha l’estensione .war.

La seconda differenza principale è il loro scopo e il modo in cui funzionano. I file JAR ci permettono di impacchettare più file per usarli come libreria, plugin o qualsiasi tipo di applicazione. D’altra parte, i file WAR sono usati solo per applicazioni web.

La struttura degli archivi è anche diversa. Possiamo creare un JAR con qualsiasi struttura desiderata. Al contrario, WAR ha una struttura predefinita con directory WEB-INF e META-INF.

Infine, possiamo eseguire un JAR dalla riga di comando se lo costruiamo come JAR eseguibile senza usare software aggiuntivo. Oppure, possiamo usarlo come libreria. Al contrario, abbiamo bisogno di un server per eseguire un WAR.

Conclusione

In questo rapido articolo, abbiamo confrontato i tipi di pacchetti Java .jar e .war. Nel farlo, abbiamo anche notato che mentre entrambi usano lo stesso formato di file ZIP, ci sono diverse differenze importanti.

Inizia con Spring 5 e Spring Boot 2, attraverso il corso Learn Spring:

>> GUARDA IL CORSO

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.