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.
