Ich bin plötzlich bei der Arbeit darauf gestoßen, deshalb werde ich einen kurzen Überblick geben.
Referenzinformationen Mave Assembly Plugin Maven tips
Maven Assembly ist ein Maven-Plug-In, das Sie verwenden, wenn Sie eine Archivdatei für die Verteilung erstellen möchten. Es scheint, dass die Erstellungsmethode, die standardmäßig angegeben werden kann, in die folgenden drei unterteilt ist.
bin Erstellen Sie ein Archiv für die Binärdistribution (einschließlich Projektartefakten, README, Lizenzdateien). Abhängige Bibliotheken sind nicht enthalten
jar-with-dependencies Erstellen Sie eine Jar-Datei, in der das Projekt und die abhängigen Bibliotheken zusammengefasst sind
src Erstellen Sie ein Archiv für die Quelldistribution
Der Ausführungsbefehl und die erstellte Datei lauten wie folgt.
bin
$ mvn assembly:assembly -DdescriptorId=bin
$ ls target
...
hello-world-1.0-SNAPSHOT-bin.tar.bz2
hello-world-1.0-SNAPSHOT-bin.tar.gz
hello-world-1.0-SNAPSHOT-bin.zip
jar-with-dependencies
$ mvn assembly:assembly -DdescriptorId=jar-with-dependencies
$ ls target
...
hello-world-1.0-SNAPSHOT-jar-with-dependencies.jar
src
$ mvn assembly:assembly -DdescriptorId=src
$ ls target
...
hello-world-1.0-SNAPSHOT-src.tar.bz2
hello-world-1.0-SNAPSHOT-src.tar.gz
hello-world-1.0-SNAPSHOT-src.zip
Das heißt, es ist mühsam, jedes Mal lange Befehle einzugeben, oder? Sie können einen Standardbefehl wie "bin" für "deskriptorRef" angeben, der in pom.xml angegeben ist. Im folgenden Beispiel wird die Archivierung zum Zeitpunkt des "MVN-Pakets" durchgeführt.
pom.xml
<project>
...
<build>
...
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>bin</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase> <!--Führen Sie at mvn package aus-->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
...
</project>
Natürlich können Sie auch anpassen, was Sie archivieren. In diesem Fall können Sie die Archiveinstellungen in einer separaten XML-Datei erstellen.
assembly.xml
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd" >
<id>make-assembly</id>
<formats>
<format>tar.gz</format>
</formats>
<fileSets>
<fileSet>
<directory>target</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<unpack>false</unpack>
<scope>runtime</scope>
<outputDirectory>/</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
Es wird wie folgt ausgeführt, dass nur die ursprüngliche Assemblydatei ausgeführt wird. Beachten Sie, dass es sich um "Ddescriptor" anstelle von "DdescriptorId" handelt. Bei einer unabhängigen Ausführung tritt außerdem ein Fehler auf, wenn das Assembly-Plug-In in pom.xml beschrieben wird. Wenn Sie also nur dies versuchen möchten, kommentieren Sie die Seite pom.xml aus.
$ mvn assembly:assembly -Ddescriptor=assembly/assembly.xml
Wenn Sie es als Erweiterung von pom.xml ausführen möchten, anstatt diesen Befehl auszuführen, können Sie es verwenden, indem Sie den Dateipfad in "Deskriptor" in "Konfiguration" unten angeben.
pom.xml
...
<configuration>
<descriptors>
<descriptor>src/assembly/src.xml</descriptor>
</descriptors>
</configuration>
...
Wenn Sie weitere Informationen wünschen, finden Sie auf der offiziellen Website, die ich zuerst veröffentlicht habe, verschiedene Informationen. Maven kann auch in Kotlin verwendet werden, also gibt es möglicherweise mehr Verwendungszwecke dafür?
Als ich diesmal Maven Assembly ausprobierte, verwendete ich außerdem Kotlins Maven-Beispielprojekt von JetBrain. Es ist nicht nur die Maven-, sondern auch die Gradle-Version verfügbar. Kotlin hello-world example with maven
Recommended Posts