[JAVA] Was ist Maven Assembly?

Begegnung plötzlich

Ich bin plötzlich bei der Arbeit darauf gestoßen, deshalb werde ich einen kurzen Überblick geben.

Referenzinformationen Mave Assembly Plugin Maven tips

Was ist Maven Assembly?

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.

Standard-Assembly-Befehl

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

Führen Sie von pom.xml aus

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>

Ich möchte mein eigenes Archiv erstellen

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

Schließlich

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

Was ist Maven Assembly?
Was ist Maven?
Was ist null? ]]
Was ist java
Was ist Schlüsselumhang?
Was ist Jackson?
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
Was ist params
Was ist SLF4J?
Was ist Fassade? ??
Was ist Java <>?
Was ist Gradle?
Was ist POJO?
Was ist java
Was ist centOS?
Was ist RubyGem?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?
Was ist Docker-Compose?
Was ist ein Konstruktor?
Was ist vue cli
Was ist eine Schnittstelle?
Was ist Rubys Selbst?
Was ist harte Codierung?
Was ist ein Stream?
Was ist Rubys attr_accessor?
Was ist Java-Kapselung?
Was ist die Erlaubnis verweigert?
Was ist Instanzsteuerung?
Was ist ein Initialisierer?
Was ist Spring Tools 4?
Was ist ein Operator?
Was ist Objektorientierung?
Was ist Guavas @VisibleForTesting?
Was ist ein MVC-Modell?
Was ist eine Anmerkung?
Was ist Java-Technologie?
Was ist Java API-Java?
Was ist @ (Instanzvariable)?
Was ist Gradles Artefakt?
Was ist JPA-Prüfung?
[Java] Was ist flatMap?
Was ist ein Servlet?
Was ist Webentwicklung?
[Java] Was ist ArrayList?
Was ist eigentlich objektorientiert?
Mavens Standard-JDK-Version ist 1.5
Was ist HttpSession session = request.getSession ();
Was ist Java Assertion? Zusammenfassung.