2017-05-05 1 views
1

Ich brauche ein Glas A zusammen mit all seinen Abhängigkeiten B.jar, C.jar usw. in eine, flache Zip-Datei, dh ich will ein Artefakt als ZIP (jAR) das hat die DateistrukturVerpacken eines Glases und seiner Abhängigkeiten in ein Nebenprodukt (kein Fettglas)

A.jar 
B.jar 
C.jar 
... 

und implementieren sie als Seiten Artefakt zu schaffen für A.jar. Beachten Sie, dass die Artefakte nicht entpackt werden sollten, sondern nur nebeneinander im Seitenartefakt ohne Verzeichnisstruktur liegen sollten.

Wie kann ich dies mit Maven erreichen?

Der Grund ist, dass unsere Produktionsumgebung eine komprimierte ZIP-Datei benötigt, die in ein Verzeichnis entpackt wird. Danach wird eine angegebene Main-Klasse gestartet.

+0

Hast du schon etwas mit dem Assembly-Plugin probiert? – Tome

+0

Nein. Ich denke, ich könnte etwas konstruieren, indem ich dependence-copy und dann assembly-plugin verwende, aber ich wollte das Rad nicht neu erfinden, indem ich Dateien umkopiere, wenn es etwas einfacheres gibt. –

Antwort

1

Wenn Sie eine Pom-Datei haben, die bereits die Abhängigkeiten enthält, können Sie das maven-assembly-plugin mit einem entsprechenden Assembly-Deskriptor verwenden und es ist nicht notwendig, maven-dependency-plugin zu verwenden, um etwas zu kopieren. Sie benötigen einen Assembly Descriptor haben, die wie folgt aussieht:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> 

    <id>xyz</id> 

    <formats> 
     <format>zip</format> 
    </formats> 

    <includeBaseDirectory>false</includeBaseDirectory> 

    <dependencySets> 
     <dependencySet> 
      <outputDirectory>/</outputDirectory> 
      <useProjectArtifact>false</useProjectArtifact> 
      <unpack>false</unpack> 
      <scope>compile</scope> 
     </dependencySet> 
    </dependencySets> 
</assembly> 

Dies sollte produzieren die entsprechende ZIP-Datei ohne Ordnerstruktur in ihm aber die abhängigen JAR-Datei im Inneren enthält.

Verwandte Themen