que - maven tutorial español pdf
La mejor práctica de Maven para crear artefactos zip ad hoc (2)
Supongamos que necesito administrar un artefacto que consiste en una estructura de carpeta / archivo aribtrary enrollada como un archivo zip. No tengo claro cómo lograr esto en Maven de la manera que mejor se adapte a "la manera Maven".
Sé que no hay ningún tipo de empaque "postal". ¿Esto significa que no hay un ciclo de vida genérico en Maven para simplemente tomar lo que tengo en la carpeta de recursos, comprimirlo e instalarlo / implementarlo en mis repositorios?
Estoy buscando opciones, con evaluaciones de cómo cada opción satisface mis requisitos para seguir el camino de maven, ya que no deseo incurrir en las penalidades obvias de desviarme del camino dorado. . .
Complete assembly / sample.xml con algo como esto:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>install</id>
<baseDirectory>/</baseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<includes>
<include>README*</include>
<include>*.sh</include>
</includes>
</fileSet>
<fileSet>
<directory>target/classes/</directory>
<outputDirectory>resources</outputDirectory>
<includes>
<include>*.properties</include>
<include>*.xml</include>
</includes>
<lineEnding>dos</lineEnding>
</fileSet>
<!--
<fileSet>
<directory>target/</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
<lineEnding>dos</lineEnding>
</fileSet>
-->
</fileSets>
<!-- use this section if you want to package dependencies -->
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<excludes>
<exclude>*:pom</exclude>
</excludes>
<useStrictFiltering>true</useStrictFiltering>
<useProjectArtifact>true</useProjectArtifact>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
agregue los códigos siguientes en el archivo pom.xml.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptor>assembly/sample.xml</descriptor>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
ejecutar comandos como mvn package -P dev -Dmaven.test.skip
creará los archivos zip que incluyen: xxxx.zip -lib / .jar -resources / .xml / properties -readme -start.sh
Decida qué clasificador usará para su archivo zip
, por razones de argumento digamos que sería una sample
.
En su proyecto, cree el archivo assembly/sample.xml
Complete assembly/sample.xml
con algo como esto:
<?xml version="1.0" encoding="UTF-8"?>
<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>sample</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<outputDirectory>/</outputDirectory>
<directory>some/directory/in/your/project</directory>
</fileSet>
</fileSets>
<!-- use this section if you want to package dependencies -->
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<excludes>
<exclude>*:pom</exclude>
</excludes>
<useStrictFiltering>true</useStrictFiltering>
<useProjectArtifact>false</useProjectArtifact>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
Agregue esto a la sección de build
su pom
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>create-distribution</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>assembly/sample.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Como resultado, debería crear e instalar you-project-name-VERSION-sample.zip
.
Le sugiero que lea el capítulo sobre ensamblajes del libro maven de Sonatype: https://books.sonatype.com/mvnref-book/reference/assemblies.html
Además, lea la especificación del formato de ensamblaje: http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html