shade plugin org groupid files exclude example maven maven-assembly-plugin

plugin - El ensamblaje de Maven incluye el tarro del proyecto actual en la cremallera final/tar



maven-jar-plugin (1)

En <dependencySet> puede excluir el <useProjectArtifact>false</useProjectArtifact> proyecto actual diciendo <useProjectArtifact>false</useProjectArtifact> , pero es verdad por defecto, por lo que debería funcionar.

A partir de la advertencia, creo que se olvidó de hacer mvn package , por lo que el mvn package jar no está disponible en el directorio de destino.

O haga mvn package assembly:single in one command.

Alternativamente, agregue maven-assembly-plugin en su pom y ajústelo a la fase ''paquete'' para que se active automáticamente en el mvn package :

<plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <id>tar-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <descriptors> <descriptor>etc/assembly.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>

Estoy utilizando el complemento de ensamblaje de Maven para generar un archivo .tar que contiene varios otros archivos, archivos dependientes. Todos los archivos se copian correctamente en las carpetas indicadas en el archivo de configuración assembly.xml .

Me gustaría incluir el archivo original del proyecto también en el archivo tar final, pero no verlo actualmente en él.

Recibo el siguiente mensaje cuando emito assembly:single objetivo:

[ADVERTENCIA] No se puede incluir el artefacto del proyecto: com.my.newpkg.project1: jar: 0.0.3.0; No tiene un archivo o directorio asociado.

Después de leer SO, parece que agregar las siguientes configuraciones a pom.xml debería agregar el frasco, pero aún no obtiene el resultado esperado.

config en pom.xml

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <mainClass>com.my.newpkg.project1.MainClass</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> </configuration> </plugin>

Fragmento de asamblea.xml

<formats> <format>dir</format> <format>tar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> <excludes> <exclude>junit:junit</exclude> </excludes> <fileMode>0755</fileMode> </dependencySet> </dependencySets>

Entonces, ¿las configuraciones aún no son correctas? o me estoy perdiendo algo aquí?

¿Cómo podemos agregar el tarro del proyecto actual en el tar final?