Posso decomprimere il file zip tramite il plugin maven-dependency, ma attualmente ho il problema che all'interno di quel file zip sono inclusi altri file zip e ho bisogno di decomprimere anche questi. Come posso fare questo?Disimballare le cerniere interne in zip con Maven
risposta
È possibile decomprimere i file usando Ant plug compito corridore:
<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>
È inoltre possibile utilizzare le dipendenze del plugin. C'è un obiettivo per decomprimere le dipendenze (vedi http://maven.apache.org/plugins/maven-dependency-plugin/unpack-dependencies-mojo.html)
questa risposta NON è corretta, la domanda riguarda un file con zip interna, NON una dipendenza. – Sergio
Utilizzando ANT non è cool più;) Codice
http://maven.apache.org/plugins/maven-dependency-plugin/examples/unpacking-artifacts.html
Esempio per la decompressione del file 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>
Il file archive.zip deve essere installato prima nel repository di Maven. Ad esempio con l'attività Attach artifact
TrueZIP Maven Plugin funziona anche bene. config del campione:
<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 si sta spegnendo, quindi i collegamenti ora passano alla pagina "stiamo riorganizzando". –
@palacsint qual è la licenza del plugin di cui sopra, non riesco a trovarlo nei loro documenti –
Ritengo che questa viene messa in file pom.xml? –
Sì, questa è una parte del file Maven 'pom.xml'. –
Come si può in questo esempio decomprimere un file che corrisponde a un'espressione regolare? Per esempio. –