Wenn Sie ein Spring Boot-Projekt erstellen und den Befehl mvn clean package
ausführen, wird die .original-Datei wie unten gezeigt im Zielverzeichnis erstellt.
Ich versuchte herauszufinden, was das war.
Ja, es ist nur eine Jar-Datei, eine War-Datei.
Spring Boot kann ein Executive Jar (War) erstellen. Dieses Format ist für Jar und War, die nicht ".original" sind.
.original
ist keine Exekutive, sondern nur Jar oder War.
Wie Sie sehen können, indem Sie Jar und War entpacken und den Inhalt vergleichen, enthält Executable Jar (War) Spring Boot-bezogene Klassen, die für die Ausführung erforderlich sind, und die Verzeichnisstruktur ist unterschiedlich.
Details werden in der offiziellen Dokumentation erklärt. https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html
Diese Datei wird vom Spring Boot Maven Plugin erstellt. Dieses Plugin hat das Ziel "Spring-Boot: Repackage", bei dem wir ein Executive Jar (War) erstellen und das Jar und War, die ursprünglich in Maven verpackt waren, in ".original" umbenennen.
Der Grund, warum es erstellt wird, obwohl "spring-boot: repackage" nicht wie "mvn clean package" angegeben ist, ist, dass die folgenden Einstellungen in pom.xml von spring-boot-Starter-Parent festgelegt sind. Wird erledigt.
pom.xml(Auszug)
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>${start-class}</mainClass>
</configuration>
</plugin>
repackage
wird in der package
-Phase ausgeführt. Wenn Sie also mvn clean package
ausführen, wird auch repackage
ausgeführt.
Wenn Sie ein ausführbares Jar (War) erstellen müssen, wird immer die .original-Datei erstellt. Wenn Sie jedoch nur ein Glas oder einen Krieg erstellen möchten, können Sie das Erstellen eines Executive Jar (War) mit einer der folgenden Optionen überspringen:
mvn clean package -Dspring-boot.repackage.skip=true
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
.original
-DateiWenn die War-Datei ohne Verwendung des integrierten Tomcat auf dem Anwendungsserver bereitgestellt werden soll, muss es sich nicht um einen ausführbaren War handeln. (Natürlich kann es auch in Executable War eingesetzt werden.)
Executable War enthält auch die Spring Boot-Klassen, die zum Ausführen erforderlich sind, sowie von Maven bereitgestellte Bibliotheken mit Gültigkeitsbereich, sodass es in der Regel größer als eine normale War-Datei ist. Wenn Sie diese Art von Operation ausführen, können Sie daher die Dateigröße reduzieren, indem Sie die .original-Datei bereitstellen oder die obigen Einstellungen vornehmen, damit Executable War nicht erstellt wird. Ich werde.
Ich denke jedoch, dass das Gute an Spring Boot ist, dass es schnell mit dem Java-Befehl ausgeführt werden kann.
Recommended Posts