Pour les gourous Maven: J'essaie de regrouper des artefacts de projet non-java (.NET) dans un seul fichier zip. Je vais avoir 2 problèmes:Maven créant un assemblage zip plat
Si je change l'emballage dans mon POM à zip <packaging>zip</packaging>
, je reçois ce message d'erreur: [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, pas grand-chose - je l'ai changé à <packaging>pom</packaging>
pour se débarrasser du pot inutile qui est par ailleurs créé dans le répertoire cible
Mon problème principal est que les fichiers que j'emballe dans ZIP sont imbriqués dans quelques répertoires mais j'ai besoin de les mettre dans le répertoire principal de ZIP. Voici mon fichier de montage:
<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>
Quand je lance - je vais fichier ZIP, mais les fichiers seront imbriquées commençant par C: \ suivi par le chemin complet. Pour vous donner idée - projet dépotoirs, il est les binaires dans la structure suivante ProjectFoo\ProjectFoo\subproject1\Bin\Release\foo.dll
et j'ai besoin ZIP\foo.dll
configuration VOICI plugin Assembly:
<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>
Peut-être que j'ai juste besoin d'utiliser antrun et exécuter zip ant tâche?
Exactement ce que je avais besoin! Merci Rich! – Bostone
vous êtes les bienvenus –
Il y a encore un problème cependant. Le zip maintient toujours un répertoire supérieur de type "artefactId-Version". Quand j'extrais un fichier zip, tous mes fichiers ne se retrouvent pas dans '/' mais dans '/ Foo-1.0-SNAPSHOT /'. Pourtant, les fichiers sont correctement copiés dans target/dll-staging – Bostone