with run plugin how maven dependencies unpack

run - Maven: ¿Cómo desempaquetar archivos precisos de artefactos en el mismo directorio de salida?



how to run maven assembly plugin (3)

Tengo varios artefactos del mismo ID de grupo ( org.webjars ), y necesito descomprimirlos, y luego copiar todos los archivos js contenidos en el mismo directorio.

Los archivos de artefactos tienen una jerarquía (comprimida como un frasco) de la siguiente manera:

artifact1 - resources - webjars - ... - sample-1.js - sample-2.js

Necesito al final que todos los archivos js se copien en el mismo directorio sin su jerarquía, de la siguiente manera:

outputDirectory - sample-1.js - sample-2.js - ... - sample-n.js

El resultado que puedo alcanzar es el siguiente:

outputDirectory - artifact-1 - resources - webjars - ... - sample-1.js - sample-2.js - ... - artifact-m - resources - webjars - ... - sample-n.js

Para este propósito, utilicé el maven-dependency-plugin :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>unpack org.webjars dependencies</id> <goals> <goal>unpack-dependencies</goal> </goals> <configuration> <includeGroupIds>org.webjars</includeGroupIds> <includes>**/*.js</includes> <outputDirectory>${project.build.directory}/static</outputDirectory> </configuration> </execution> </executions> </plugin>

¿Hay una opción mágica de este complemento para hacer esto, o debo necesitar otro complemento para completar el trabajo?

EDITAR: Aquí está la solución que finalmente usé:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>copy org.webjars dependency to jar</id> <phase>package</phase> <goals><goal>run</goal></goals> <configuration> <target> <copy todir="${project.build.directory}/classes/static" flatten="true"> <fileset dir="${project.build.directory}/static"> <include name="**/*.js"/> </fileset> </copy> </target> </configuration> </execution> </executions> </plugin> <!-- Force the generation of the jar to be done after the javascript dependencies have been copied. Note : This is a half solution, as the jar is generated twice: a first time before the javascript get copied, and another one after. As a result, there is the correct jar, but after two creations... --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <id>Force the jar-plugin to be called after the javascripts dependencies have been copied to be embedded</id> <phase>package</phase> <goals><goal>jar</goal></goals> </execution> </executions> </plugin>


Acabo de encontrar un problema similar, y (dado que no soy un gran fanático de la ejecución de Ant Antiquated dentro de Maven, hoy en día) terminé usando org.apache.portals.jetspeed-2:jetspeed-unpack-maven-plugin (mvnrepository link here ). En su configuración <resource> puede especificar una opción <flat> true </flat> que aplanará la estructura del directorio como se desee.