Maven, der flache Reißverschlussbaugruppe schafft

Für Maven-Gurus da draußen: Ich versuche, Nicht-Java-Projektartefakte (.NET) in eine einzige Zip-Datei zu packen. Ich habe 2 Probleme:

Wenn ich die Verpackung in meinem POM auf zip ändere<packaging>zip</packaging>Ich erhalte folgende 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 - ich habe es in geändert<packaging>pom</packaging> um nutzloses Glas loszuwerden, das sonst im Zielverzeichnis erzeugt wird

Mein Hauptproblem ist, dass Dateien, die ich in ZIP packe, in wenigen Verzeichnissen verschachtelt sind, aber ich muss diese in das oberste ZIP-Verzeichnis stellen. Hier ist meine Baugruppendatei:

 <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>

Wenn ich dies ausführe, erhalte ich eine ZIP-Datei, die Dateien werden jedoch mit C: \ gefolgt vom vollständigen Pfad verschachtelt. Damit Sie sich ein Bild machen können, speichert das Projekt die Binärdateien in der folgenden StrukturProjectFoo\ProjectFoo\subproject1\Bin\Release\foo.dll und ich braucheZIP\foo.dll

Hier ist die Konfiguration des Assembly Plugins:

<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 muss ich nur antrun verwenden und eine Ant-Zip-Aufgabe ausführen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage