Um Maven Gurus da draußen: Ich versuche, Non-Java-Projekt Artefakte (.NET) in eine einzige Zip-Datei zu packen. Ich habe 2 Probleme:Maven Erstellen flacher Reißverschluss-Assembly
Wenn ich Verpackung in meinem POM ändern <packaging>zip</packaging>
zip, ich diese Fehlermeldung: [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, keine große Sache - habe ich es zu <packaging>pom</packaging>
loszuwerden nutzlos Glas, die sonst erzeugt wird im Zielverzeichnis
Mein Hauptproblem ist, dass Dateien, die ich in ZIP verpacken, in wenigen Verzeichnissen verschachtelt sind, aber ich muss diese in das oberste Verzeichnis von ZIP setzen. Hier ist meine Assembly-Datei:
<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>
Als ich betreiben diese - ich werde ZIP-Datei erhalten, aber Dateien werden verschachtelt werden beginnend mit C: \ durch vollständigen Pfad gefolgt. Um Ihnen Idee - Projekt-Dumps es Binärdateien in die folgende Struktur ProjectFoo\ProjectFoo\subproject1\Bin\Release\foo.dll
und ich brauche ZIP\foo.dll
Ist hier Montage Plugin-Konfiguration:
<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>
Vielleicht ant zip Ich muss nur antrun verwenden und ausführen Aufgabe?
Genau das, was ich brauchte! Danke Rich! – Bostone
Sie sind willkommen –
Es gibt immer noch ein Problem. Die Zip enthält immer noch ein Top-Verzeichnis vom Typ "artifactId-Version". Wenn ich zip entpacke, landen meine Dateien nicht in '/' sondern in '/ Foo-1.0-SNAPSHOT /'. Dennoch werden die Dateien korrekt in target/dll-staging kopiert. – Bostone