Para los gurús de Maven: Estoy tratando de empacar artefactos de proyecto que no son Java (.NET) en un solo archivo zip. Tengo 2 problemas:Maven creando conjunto de cremallera plana
Si cambio de envasado en mi POM para comprimir <packaging>zip</packaging>
, me sale este mensaje de error: [INFO] Cannot find lifecycle mapping for packaging: 'zip'. Component descriptor cannot be found in the component repository: org.apache.mav en.lifecycle.mapping.LifecycleMappingzip.
OK, no es gran cosa - lo cambié a <packaging>pom</packaging>
para deshacerse del tarro inútil que se crea lo contrario en el directorio de destino
Mi problema principal es que los archivos que estoy empaquetando en ZIP están anidados en algunos directorios pero necesito ponerlos en el directorio superior de ZIP. Aquí está mi archivo de ensamblaje:
<assembly>
<id>bin</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${basedir}/${project.artifactId}</directory>
<includes>
<include>**/Bin/Release/*.dll</include>
<include>**/Bin/Release/*.pdb</include>
</includes>
</fileSet>
</fileSets>
</assembly>
Cuando ejecuto esto - Voy a archivo ZIP, pero los archivos se pueden anidar partir de C: \ seguido por ruta completa. Para darle idea - proyecto de vertederos es binarios en la siguiente estructura ProjectFoo\ProjectFoo\subproject1\Bin\Release\foo.dll
y necesito configuración ZIP\foo.dll
Aquí está el montaje plugin:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
Tal vez sólo necesita utilizar antRun y ejecutar postal hormiga ¿tarea?
Exactamente lo que necesitaba! Gracias Rich! – Bostone
de nada –
Sin embargo, todavía hay un problema. El zip aún mantiene un directorio superior de tipo "artifactId-Version". Cuando extraigo zip todos mis archivos terminan no en '/' sino en '/ Foo-1.0-SNAPSHOT /'. Sin embargo, los archivos se copian correctamente en target/dll-staging – Bostone