Je peux décompresser le fichier zip via le plugin maven-dependency, mais actuellement j'ai le problème que dans ce fichier zip d'autres fichiers zip sont inclus et que j'ai besoin de les décompacter aussi. Comment puis-je faire ceci?Décompressez les zips internes dans le zip avec Maven
Répondre
Vous pouvez décompressez tous les fichiers à l'aide de plug-in runner tâche ant:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>prepare</id>
<phase>validate</phase>
<configuration>
<tasks>
<echo message="prepare phase" />
<unzip src="zips/archive.zip" dest="output/" />
<unzip src="output/inner.zip" dest="output/" />
<unzip dest="output">
<fileset dir="archives">
<include name="prefix*.zip" />
</fileset>
</unzip>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Vous pouvez également utiliser les dépendances de plug-in. Il y a un but de déballer les dépendances (voir http://maven.apache.org/plugins/maven-dependency-plugin/unpack-dependencies-mojo.html)
cette réponse n'est PAS correcte, la question concerne un fichier avec un zip interne, PAS une dépendance. – Sergio
utilisant ANT est pas cool plus;)
http://maven.apache.org/plugins/maven-dependency-plugin/examples/unpacking-artifacts.html
Exemple de code pour le déballage fichier ZIP (archive.zip):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>foo</groupId>
<artifactId>archive</artifactId>
<version>1.0-SNAPSHOT</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Le fichier archive.zip doit d'abord être installé dans le dépôt maven. Par exemple avec la tâche Attach artifact org.codehaus.mojo:build-helper-maven-plugin:build-helper:attach-artifact
Mais cela ne désintègre que les artefacts, pas les fichiers arbitraires. –
@ OndraŽižka Avec maven vous pouvez traiter tout fichier "arbitraire" comme un artefact, regardez simplement 'build-helper: attach-artifact'. – MariuszS
@MariuszS comment le fait-on avec un fichier arbitraire sur le système de fichiers local? – tojofo
TrueZIP Maven Plugin fonctionne également bien. config Exemple:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>truezip-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>copy-package</id>
<goals>
<goal>copy</goal>
</goals>
<phase>package</phase>
<configuration>
<verbose>true</verbose>
<fileset>
<directory>outer.zip</directory>
<outputDirectory>${project.build.directory}/outer</outputDirectory>
</fileset>
<fileset>
<directory>${project.build.directory}/outer/inner.zip</directory>
<outputDirectory>${project.build.directory}/inner</outputDirectory>
</fileset>
</configuration>
</execution>
</executions>
</plugin>
Codehaus est en cours de fermeture, les liens sont désormais redirigés vers la page "Nous nous réorganisons". –
@palacsint quelle est la licence de plugin ci-dessus, je ne peux pas le trouver dans leurs documents –
Je suppose que cela est mis dans votre fichier pom.xml? –
Oui, ceci est une partie de votre fichier Maven 'pom.xml'. –
Comment pouvez-vous dans cet exemple décompresser un fichier qui correspond à une expression régulière? Par exemple. –