Em Java Como criar um arquivo .jar / .tar.gz / .zip usando maven-assembly-plugin? Tutorial do projeto Maven e Enterprise
Publicados: 2020-10-07
Maven
é incrível. Com tantos plugins, é uma das Best Java Build tool
do mercado no momento.
Eu uso em todos os meus projetos e depende muito disso. As possibilidades de construção são infinitas. Algum tempo atrás eu escrevi tutoriais diferentes sobre tantos outros plugins maven e neste vamos falar sobre maven-assembly-plugin
.
O Maven Assembly Plugin depende dos descritores de montagem fornecidos para ditar sua execução.
Aqui está uma lista de tutoriais anteriores de plugins maven:
-
maven-war-plugin
– Cria o arquivo .war do projeto. -
maven-resources-plugin
,maven-dependency-plugin
&maven-jar-plugin
– Construir projeto Java incluindo todas as dependências? -
maven-shade-plugin
– Crie um .jar executável baseado em Java+Spring com todas as dependências, propriedades e recursos necessários.
Você tem alguma das perguntas abaixo? Este tutorial também funcionará para isso.
- Como criar um arquivo jar com o Maven?
- Como usar o maven para criar um arquivo jar com dependências
- Use pom.xml para criar jar
- Melhor maneira de criar maven jar sem dependências
- Como criar maven jar incluindo dependências
Vamos começar com maven-assembly-plugin
Passo 1
Crie um novo projeto Maven no ambiente Eclipse. Nomeie-o como CrunchifyMavenBuildPlugins
. Se você já tiver um projeto da Web dinâmico ou um projeto Java, usando essas etapas, você poderá converter o projeto em projeto maven. Depois de converter o projeto para Maven, você deverá ver o arquivo pom.xml
gerado, que precisamos para este tutorial.
Aqui está a estrutura do meu projeto. Estou usando meu projeto existente que tem um total 8 java files
no pacote /src/com/crunchify/tutorials
.

Passo 2
Abra o arquivo pom.xml do seu projeto e adicione o novo <plugin></plugin>
principalmente line 28 to 38
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 < / modelVersion > < groupId > CrunchifyMavenBuildPlugins < / groupId > < artifactId > CrunchifyMavenBuildPlugins < / artifactId > < version > 0.0.1 - SNAPSHOT < / version > < name > CrunchifyMavenBuildPlugins < / name > < properties > < project . build . sourceEncoding > UTF - 8 < / project . build . sourceEncoding > < / properties > < dependencies > < dependency > < groupId > wsdl4j < / groupId > < artifactId > wsdl4j < / artifactId > < version > 1.6.3 < / version > < / dependency > < dependency > < groupId > com . google . zxing < / groupId > < artifactId > core < / artifactId > < version > 2.0 < / version > < / dependency > < / dependencies > < build > < plugins > < plugin > < artifactId > maven - assembly - plugin < / artifactId > < version > 2.5.3 < / version > < configuration > < descriptors > < descriptor > src / com / crunchify / assembly / crunchify . xml < / descriptor > < / descriptors > < tarLongFileMode > posix < / tarLongFileMode > < / configuration > < / plugin > < / plugins > < / build > < / project > |
Etapa 3
Crie um novo arquivo crunchify.xml
e coloque-o no pacote /src/com/crunchify/assembly
. Já referimos este arquivo no arquivo pom.xml
acima.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
< assembly xmlns = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd" > < id > bundle < / id > < formats > < format > tar . gz < / format > < format > zip < / format > < format > tar < / format > < / formats > < includeBaseDirectory > false < / includeBaseDirectory > < fileSets > < fileSet > < directory > src / com / crunchify / tutorial < / directory > < outputDirectory > crunchify - output < / outputDirectory > < / fileSet > < / fileSets > < / assembly > |
Aqui estamos exportando nosso projeto para 3 <formats>
diferentes

- tar.gz
- fecho eclair
- alcatrão
A tag <directory>
mostra isso – pegue tudo no pacote src/com/crunchify/tutorial
e coloque-o na pasta crunchify-output
que é mencionada na tag <outputDirectory>
.
Se você quiser incluir tudo como o conteúdo da pasta /src
ou /resource
, poderá usar abaixo as diferentes variações:
- <directory>
src/com/crunchify/tutorial
</directory> - <directory>
src
</directory> : tudo na pasta src - <directory>
resources
</directory> : tudo na pasta de recursos - <diretório>
/
</diretório> : tudo
Passo 4
Clique com o botão direito do mouse no projeto CrunchifyMavenBuildPlugins => Run As
=> Maven build

- Fornecer metas como
clean assembly:assembly
- Clique
Apply
- Clique
Run

Passo-5
Você deve ver a mensagem BUILD SUCCESS
no console.
1 2 3 4 5 6 7 8 9 |
[ INFO ] --- maven - assembly - plugin : 2.5.3 : assembly ( default - cli ) @ CrunchifyMavenBuildPlugins --- [ INFO ] Reading assembly descriptor : src / com / crunchify / assembly / crunchify . xml [ INFO ] Building tar : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . tar . gz [ INFO ] Building zip : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . zip [ INFO ] Building tar : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . tar [ INFO ] ------------------------------------------------------------------------ [ INFO ] BUILD SUCCESS [ INFO ] ------------------------------------------------------------------------ [ INFO ] Total time : 1.719 s |
Passo-6
NOTE:
você não precisa executar esta etapa.

Você está recebendo este erro? Se você vir esta mensagem de erro ao construir o assembly, então você deve adicionar a linha abaixo ao arquivo pom.xml.
1 |
< tarLongFileMode > posix < / tarLongFileMode > |
Eu obtive o erro acima na minha primeira tentativa. Então já adicionei tarLongFileMode
ao arquivo pom.xml acima.
Passo-7
Agora how to verify
? Por favor, vá para a pasta de target
do seu projeto e execute o comando abaixo para ver o conteúdo do seu .tag.gz file contents
.
bash-3.2$ tar zxvf CrunchifyMavenBuildPlugins-0.0.1-SNAPSHOT-bundle.tar.gz

Deixe-me saber se você tiver alguma dúvida e enfrentar qualquer problema ao executar isso.