[JAVA] So fügen Sie in Spring Boot einen Klassenpfad hinzu

Als ich das letzte Mal MessageSource-bezogen untersuchte, musste ich die Eigenschaftendatei, die die Nachricht verwaltet, außerhalb des Spring Boot-Projekts ablegen. Spring Message Source neu laden

Zu dieser Zeit, als ich untersuchte, wie man mit Spring Boot einen Klassenpfad hinzufügt, gab es mehrere Methoden, daher werde ich sie zusammenfassen.

Die Einstellungen können je nach Startmethode unterschiedlich sein, und es kann verschiedene Einstellungsmethoden geben.

Umgebung

Beim Booten mit mvn spring-boot: run

Dies ist der Fall, wenn Sie eine Anwendung mit dem Spring Boot Maven Plugin starten. Sie können es auf eine der folgenden Arten hinzufügen.

Geben Sie im Startargument an

Sie können mehrere durch Kommas getrennte Pfade angeben.

mvn spring-boot:run -Dspring-boot.run.folders=[Pfad]

Schreiben Sie in pom.xml

pom.xml


<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <folders>
            <folder>[Pfad]</folder>
        </folders>
    </configuration>
</plugin>

Für ausführbares Glas

Beim Erstellen eines ausführbaren Jar und dessen Ausführung mit dem Befehl java. Übrigens wird der Klassenpfad nicht hinzugefügt, selbst wenn Sie Folgendes tun.

Schlechtes Beispiel


java -cp [Pfad] -jar jarFile

Der Befehl "java" ignoriert "-cp", wenn "-jar" angegeben ist.

Ändern Sie die Hauptklasse

Sie können einen Klassenpfad hinzufügen, indem Sie "PropertiesLauncher" als Hauptklasse verwenden.

Wenn Sie das Spring Boot Maven Plugin verwenden, können Sie den "Properties Launcher" verwenden, indem Sie "layout" auf "ZIP" oder "DIR" setzen.

pom.xml


<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <layout>ZIP</layout>
    </configuration>
</plugin>

In Bezug auf die Einstellungen für den hinzuzufügenden Klassenpfad gibt es verschiedene Einstellungsmethoden. Sie sind in absteigender Reihenfolge der Priorität aufgeführt.

In den Systemeigenschaften angegeben

Sie können den Klassenpfad beim Start mit -Dloader.path hinzufügen.

java -Dloader.path=[Pfad] -jar jarFile

Übrigens habe ich es wie "-Dloader.path = [path]" nach "-jar" ausgeführt und es hat nicht funktioniert, also war ich eine Weile besorgt. Der Befehl java muss in der Reihenfolge java [-options] -jar jarFile [args ...] angegeben werden.

Mit Umgebungsvariable angeben

Auf die Umgebungsvariable LOADER_PATH setzen. Sie können es starten, indem Sie den Befehl java normal verwenden.

windows


set LOADER_PATH=[Pfad]

linux


export LOADER_PATH=[Pfad]

Geben Sie in der Eigenschaftendatei an

Platzieren Sie die Konfigurationsdatei direkt unter Ressourcen mit dem Dateinamen "loader.properties". Dies ist auch in Ordnung, wenn Sie den Befehl java normal verwenden, um ihn zu starten.

loader.properties


loader.path=[Pfad]

Der Dateiname und der Speicherort können durch Einstellen geändert werden.

Geben Sie in der Manifestdatei an

Sie können den Klassenpfad hinzufügen, indem Sie in der Manifestdatei "Loader-Path" angeben. Beginnen Sie normalerweise mit dem Befehl java.

Wenn Sie das Maven Jar Plugin verwenden, können Sie Folgendes einstellen.

pom.xml


<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <configuration>
    <archive>
      <manifestEntries>
        <Loader-Path>[Pfad]</Loader-Path>
      </manifestEntries>
    </archive>
  </configuration>
</plugin>

Zusammenfassung

Es gibt verschiedene Möglichkeiten, Executable Jar zu verwenden, aber ich habe mich gefragt, ob Systemeigenschaften oder Umgebungsvariablen, die beim Start festgelegt werden können, gut sind.

Im Fall einer Eigenschaftendatei oder Manifestdatei ist der Pfad in festem Code geschrieben, daher halte ich es für schwierig, dies zu tun, wenn die Einstellungen für jede Umgebung unterschiedlich sind.

Sie können auch eine Eigenschaftendatei für jede Umgebung erstellen und den Namen der Eigenschaftendatei beim Start in den Systemeigenschaften angeben.

Recommended Posts

So fügen Sie in Spring Boot einen Klassenpfad hinzu
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
So binden Sie mit einer Eigenschaftendatei in Spring Boot
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Wie man Lombok im Frühling benutzt
So stellen Sie Spring Boot + PostgreSQL ein
[Spring Boot] So rufen Sie Eigenschaften dynamisch aus einer in einer URL enthaltenen Zeichenfolge ab
Verwendung von ModelMapper (Spring Boot)
So ändern Sie den Einstellungswert von application.properties beim Booten im Frühjahrsstart
Aufrufen und Verwenden der API in Java (Spring Boot)
So fügen Sie dieselben Indizes in ein verschachteltes Array ein
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
Wie kann ich Spring Tool in Eclipse 4.6.3 einbinden?
So fügen Sie einen neuen Hash / Array hinzu
So veröffentlichen Sie eine Bibliothek in jCenter
So teilen Sie eine Spring Boot-Nachrichtendatei
Fügen Sie Frühlingsstiefel und Gradle zur Sonnenfinsternis hinzu
So erstellen Sie mit SPRING INITIALIZR einen Hinadan für ein Spring Boot-Projekt
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Führen Sie ein Spring Boot-Projekt mit VS-Code aus
So zeigen Sie eine Webseite in Java an
So verkleinern Sie das Spring Boot Docker-Image
Verwendung von Spring Boot-Sitzungsattributen (@SessionAttributes)
So führen Sie eine djUnit-Aufgabe in Ant aus
So erstellen Sie ein Thema in Liferay 7 / DXP
So fügen Sie die html.erb-Klasse in Rails bedingt hinzu
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
So implementieren Sie eine ähnliche Funktion in Rails
So erstellen Sie einfach ein Pulldown mit Rails
Klassenpfad hinzufügen: zu dem in spring.datasource.schema angegebenen Pfad
[Java] Artikel zum Hinzufügen einer Validierung mit Spring Boot 2.3.1.
So definieren Sie mehrere orm.xml in Spring4, JPA2.1
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
So generieren Sie automatisch einen Konstruktor in Eclipse
Anzeigen der in Spring Boot eingegebenen Zeichen im Browser und Referenzlinks [Einführung in Spring Boot / Für Anfänger]
Melden Sie sich bei Spring Boot-Webanwendungen auf der Microsoft ID-Plattform an
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
So löschen Sie alle Daten in einer bestimmten Tabelle
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So stellen Sie Spring Boot Dependency Injection (DI) ein
So implementieren Sie eine nette Funktion in Ajax mit Rails
Ein Memorandum über die Sucht nach Spring Boot2 x Doma2
So erstellen Sie einen Daten-URI (base64) in Java
So starten Sie einen anderen Befehl in einem Ruby-Programm
So zeigen Sie eine Browser-Vorschau mit VS-Code an
[So fügen Sie ein Video mit Rails in haml ein]
So schreiben Sie eine Datumsvergleichssuche in Rails
[Einführung in Spring Boot] Senden Sie ein Formular mit thymeleaf
So verspotten Sie einen Super-Methodenaufruf in PowerMock
So testen Sie den Bildschirm zum Hochladen von Dateien mit Spring + Selenium
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
So konvertieren Sie eine Datei in ein Byte-Array in Java
[Rails 6] So legen Sie ein Hintergrundbild in Rails [CSS] fest