Diferenças entre empacotamento JAR e WAR

Overview

Neste tutorial rápido, vamos focar nas diferenças entre empacotamento JAR e WAR em Java.

Primeiro, vamos definir cada opção de empacotamento separadamente. Em seguida, vamos resumir suas diferenças.

Empacotamento JAR

Simplesmente colocado, JAR – ou Java Archive – é um formato de arquivo de pacote. Os arquivos JAR têm a extensão .jar e podem conter bibliotecas, recursos e arquivos de metadados.

Essencialmente, é um arquivo compactado contendo as versões compactadas dos arquivos .class e recursos das bibliotecas e aplicativos Java compilados.

Por exemplo, aqui está uma estrutura de arquivos JAR simples:

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

O META-INF/MANIFEST.O arquivo MF pode conter metadados adicionais sobre os arquivos armazenados no arquivo.

Podemos criar um arquivo JAR usando o comando jar ou com ferramentas como Maven.

WAR Packaging

WAR significa Web Application Archive ou Web Application Resource. Estes arquivos têm a extensão .war e são usados para empacotar aplicações web que podemos implementar em qualquer container Servlet/JSP.

Aqui está um layout de exemplo de uma estrutura de arquivo típica WAR:

Inside, ele tem um diretório META-INF contendo informações úteis no MANIFEST.MF sobre o arquivo web. O diretório META-INF é privado e não pode ser acessado de fora.

Por outro lado, ele também contém o diretório público WEB-INF com todos os recursos estáticos da web, incluindo páginas HTML, imagens, e arquivos JS. Além disso, ele contém o arquivo web.xml, classes servlet e bibliotecas.

Podemos usar as mesmas ferramentas e comandos que usamos para construir um JAR para construir um arquivo .war.

Diferenças-chave

Então, quais são as principais diferenças entre estes dois tipos de arquivo?

A primeira e mais óbvia diferença é a extensão do arquivo. Os JARs têm a extensão .jar, enquanto o arquivo WAR tem a extensão .war.

A segunda diferença principal é a sua finalidade e a forma como funcionam. Os arquivos JAR nos permitem empacotar múltiplos arquivos para usá-lo como biblioteca, plugin, ou qualquer tipo de aplicação. Por outro lado, arquivos WAR são usados apenas para aplicações web.

A estrutura dos arquivos também é diferente. Nós podemos criar um JAR com qualquer estrutura desejada. Em contraste, WAR tem uma estrutura pré-definida com diretórios WEB-INF e META-INF.

Finalmente, podemos rodar um JAR a partir da linha de comando se o construirmos como um JAR executável sem usar software adicional. Ou, podemos usá-lo como uma biblioteca. Em contraste, precisamos de um servidor para executar uma WAR.

Conclusion

Neste artigo rápido, nós comparamos os tipos de empacotamento .jar e .war Java. Ao fazer isso, também notamos que enquanto ambos usam o mesmo formato de arquivo ZIP, existem várias diferenças importantes.

Comece com Spring 5 e Spring Boot 2, através do curso Learn Spring:

>> VERIFIQUE O CURSO

Deixe uma resposta

O seu endereço de email não será publicado.