Overview
Dans ce rapide tutoriel, nous nous concentrerons sur les différences entre l’emballage JAR et WAR en Java.
D’abord, nous définirons chaque option d’emballage séparément. Ensuite, nous résumerons leurs différences.
Packaging JAR
En termes simples, JAR – ou Java Archive – est un format de fichier de package. Les fichiers JAR ont l’extension .jar et peuvent contenir des bibliothèques, des ressources et des fichiers de métadonnées.
Essentiellement, c’est un fichier zippé contenant les versions compressées des fichiers .class et des ressources des bibliothèques et des applications Java compilées.
Par exemple, voici une structure simple de fichier JAR:
META-INF/ MANIFEST.MFcom/ baeldung/ MyApplication.class
Le fichier META-INF/MANIFEST.MF peut contenir des métadonnées supplémentaires sur les fichiers stockés dans l’archive.
Nous pouvons créer un fichier JAR en utilisant la commande jar ou avec des outils comme Maven.
WAR Packaging
WAR signifie Web Application Archive ou Web Application Resource. Ces fichiers d’archives ont l’extension .war et sont utilisés pour empaqueter des applications web que nous pouvons déployer sur n’importe quel conteneur Servlet/JSP.
Voici un exemple de disposition d’une structure de fichier WAR typique :
À l’intérieur, il a un répertoire META-INF contenant des informations utiles dans le MANIFEST.MF sur l’archive web. Le répertoire META-INF est privé et n’est pas accessible de l’extérieur.
D’autre part, il contient également le répertoire public WEB-INF avec toutes les ressources web statiques, y compris les pages HTML, les images et les fichiers JS. De plus, il contient le fichier web.xml, les classes de servlets et les bibliothèques.
Nous pouvons utiliser les mêmes outils et commandes que nous avons utilisés pour construire un JAR pour construire une archive .war.
Différences clés
Donc, quelles sont les différences clés entre ces deux types d’archives ?
La première et la plus évidente des différences est l’extension du fichier. Les JAR ont l’extension .jar, alors que le fichier WAR a l’extension .war.
La deuxième différence principale est leur objectif et leur mode de fonctionnement. Les fichiers JAR nous permettent d’empaqueter plusieurs fichiers afin de l’utiliser comme une bibliothèque, un plugin, ou tout type d’application. D’autre part, les fichiers WAR sont utilisés uniquement pour les applications web.
La structure des archives est également différente. Nous pouvons créer un JAR avec n’importe quelle structure souhaitée. En revanche, WAR a une structure prédéfinie avec les répertoires WEB-INF et META-INF.
Enfin, nous pouvons exécuter un JAR à partir de la ligne de commande si nous le construisons comme un JAR exécutable sans utiliser de logiciel supplémentaire. Ou bien, nous pouvons l’utiliser comme une bibliothèque. En revanche, nous avons besoin d’un serveur pour exécuter un WAR.
Conclusion
Dans ce rapide article, nous avons comparé les types de packaging Java .jar et .war. Ce faisant, nous avons également noté que, bien que les deux utilisent le même format de fichier ZIP, il existe plusieurs différences importantes.
Débutez avec Spring 5 et Spring Boot 2, grâce au cours Learn Spring :
>> VÉRIFIEZ LE COURS
.