En Java ¿Cómo crear un archivo .jar / .tar.gz / .zip usando maven-assembly-plugin? Tutorial de proyectos de Maven y Enterprise
Publicado: 2020-10-07
Maven
es bastante sorprendente. Con tantos complementos, es una de las Best Java Build tool
en el mercado en este momento.
Lo uso en todos mis proyectos y depende en gran medida de él. Las posibilidades de construcción son infinitas. Hace algún tiempo, escribí diferentes tutoriales sobre muchos otros complementos de maven y en este maven-assembly-plugin
.
Maven Assembly Plugin se basa en los descriptores de ensamblaje proporcionados para dictar su ejecución.
Aquí hay una lista de tutoriales anteriores de complementos de Maven:
-
maven-war-plugin
: crea un archivo .war del proyecto. -
maven-resources-plugin
,maven-dependency-plugin
&maven-jar-plugin
– ¿Crear un proyecto Java que incluya todas las dependencias? -
maven-shade-plugin
: cree un .jar ejecutable basado en Java+Spring con todas las dependencias, propiedades y recursos requeridos.
¿Tiene alguna de las siguientes preguntas? Este tutorial también funcionará para eso.
- ¿Cómo crear un archivo jar con Maven?
- Cómo usar maven para crear un archivo jar con dependencias
- Usa pom.xml para crear un jar
- La mejor manera de crear maven jar sin dependencias
- Cómo crear maven jar incluyendo dependencias
Comencemos con maven-assembly-plugin
Paso 1
Crear proyecto New Maven en entorno Eclipse. Nómbrelo como CrunchifyMavenBuildPlugins
. Si tiene un proyecto web dinámico o un proyecto Java existente, siguiendo estos pasos puede convertir el proyecto en un proyecto maven. Después de convertir el proyecto a Maven, debería ver el archivo pom.xml
generado que necesitamos para este tutorial.
Aquí está la estructura de mi proyecto. Estoy usando mi proyecto existente que tiene un total 8 java files
en el paquete /src/com/crunchify/tutorials
.

Paso 2
Abra el archivo pom.xml de su proyecto y agregue un nuevo <plugin></plugin>
principalmente en las 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 > |
Paso 3
Cree un nuevo archivo crunchify.xml
y colóquelo en el paquete /src/com/crunchify/assembly
. Ya hemos mencionado este archivo en el archivo pom.xml
anterior.

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 > |
Aquí estamos exportando nuestro proyecto en 3 <formats>
diferentes
- tar.gz
- Código Postal
- alquitrán
La etiqueta <directory>
muestra eso: obtenga todo en el paquete src/com/crunchify/tutorial
y colóquelo en la carpeta crunchify-output
que se menciona en la etiqueta <outputDirectory>
.
Si desea incluir todo, como /src
o /resource
, puede usar las siguientes variaciones a continuación:
- <directorio>
src/com/crunchify/tutorial
</directorio> - <directorio>
src
</directorio>: todo en la carpeta src - <directorio>
resources
</directorio>: todo en la carpeta de recursos - <directorio>
/
</directorio> : todo
Etapa 4
Haga clic derecho en el proyecto CrunchifyMavenBuildPlugins => Run As
=> Maven build

- Proporcionar objetivos como
clean assembly:assembly
- Haga clic
Apply
- Haga clic
Run

Paso-5
Debería ver el mensaje BUILD SUCCESS
en la consola.
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 |
Paso-6
NOTE:
no es necesario que realice este paso.

¿Está recibiendo este error? Si ve este mensaje de error mientras crea el ensamblaje, debe agregar la siguiente línea al archivo pom.xml.
1 |
< tarLongFileMode > posix < / tarLongFileMode > |
Obtuve el error anterior en mi primer intento. Así que ya agregué tarLongFileMode
al archivo pom.xml anterior.
Paso-7
Ahora, how to verify
? Vaya a la carpeta de target
de su proyecto y ejecute el siguiente comando para ver el contenido de su .tag.gz file contents
.
bash-3.2$ tar zxvf CrunchifyMavenBuildPlugins-0.0.1-SNAPSHOT-bundle.tar.gz

Avíseme si tiene alguna pregunta y enfrenta algún problema al ejecutar esto.