Je l'ai soudainement rencontré au travail, je vais donc vous donner un bref aperçu.
Informations de référence Mave Assembly Plugin Maven tips
Maven Assembly est un plug-in Maven que vous utilisez lorsque vous souhaitez créer un fichier d'archive à distribuer. Il semble que la méthode de création qui peut être spécifiée par défaut soit divisée en trois.
bin Créer une archive pour la distribution binaire (comprend les artefacts de projet, README, les fichiers de licence) Les bibliothèques dépendantes ne sont pas incluses
jar-with-dependencies Créez un fichier Jar qui résume le projet et les bibliothèques dépendantes
src Créer une archive pour la distribution source
La commande d'exécution et le fichier créé sont les suivants.
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
Cela dit, il est difficile de taper de longues commandes à chaque fois, non?
Vous pouvez spécifier une commande par défaut telle que bin
pour descriptorRef
spécifiée dans pom.xml.
Dans l'exemple ci-dessous, l'archivage est effectué au moment du «package mvn».
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> <!--Exécuter au package mvn-->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
...
</project>
Bien sûr, vous pouvez également personnaliser ce que vous archivez. Dans ce cas, vous pouvez créer les paramètres d'archive dans un fichier xml distinct.
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>
L'exécution du fichier d'assemblage d'origine uniquement est la suivante. Notez qu'il s'agit de «Ddescriptor» au lieu de «DdescriptorId». De plus, dans le cas d'une exécution indépendante, une erreur se produira si le plug-in d'assemblage est décrit dans pom.xml, donc si vous ne voulez essayer que cela, commentez le côté pom.xml.
$ mvn assembly:assembly -Ddescriptor=assembly/assembly.xml
Si vous voulez l'exécuter en tant qu'extension de pom.xml au lieu d'exécuter cette commande, vous pouvez l'utiliser en spécifiant le chemin du fichier dans descriptor
dans configuration
ci-dessous.
pom.xml
...
<configuration>
<descriptors>
<descriptor>src/assembly/src.xml</descriptor>
</descriptors>
</configuration>
...
Si vous souhaitez en savoir plus, veuillez vous référer au site officiel que j'ai publié en premier pour diverses informations. Maven peut également être utilisé à Kotlin, il peut donc y avoir plus d'utilisations?
De plus, en essayant Maven Assembly cette fois, j'ai utilisé le projet d'exemple Maven de Kotlin de JetBrain ci-dessous. Non seulement Maven, mais aussi la version gradle est disponible, alors jetez un œil. Kotlin hello-world example with maven
Recommended Posts