Per i guru di Maven: Sto provando a raggruppare gli elementi del progetto non-java (.NET) in un singolo file zip. Sto avendo 2 problemi:Maven che crea un assemblaggio con cerniera piatta
Se cambio imballaggio nel mio POM a zip <packaging>zip</packaging>
, ottengo questo messaggio di errore: [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, non un grosso problema - ho cambiato in <packaging>pom</packaging>
per sbarazzarsi di vaso inutili che altrimenti creato nel dir target
Il mio problema principale è che i file che sto impacchettando in ZIP sono annidati in poche directory, ma ho bisogno di inserirli nella top directory di ZIP. Ecco il mio file assembly:
<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>
Quando eseguo questo - Prendo file ZIP, ma i file verranno nidificati che iniziano per C: \ seguito dal percorso completo. Per darvi un'idea - progetto discariche è binari nella seguente struttura ProjectFoo\ProjectFoo\subproject1\Bin\Release\foo.dll
e ho bisogno di configurazione ZIP\foo.dll
Ecco il montaggio plug-in:
<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>
Forse ho solo bisogno di usare antrun ed eseguire zip formica compito?
Esattamente quello di cui avevo bisogno! Grazie ricco! – Bostone
siete i benvenuti –
C'è ancora un problema però. Lo zip mantiene ancora una directory superiore di tipo "artifactId-Version". Quando estrai zip tutti i miei file finiscono non in '/' ma in '/ Foo-1.0-SNAPSHOT /'. Eppure i file sono copiati correttamente in target/dll-staging – Bostone