2016-06-10 6 views
1

I feder Boot bin mit 1.3.5/OS X/java 8.PropertiesLauncher ignoriert -Dloader.path =

Die Situation ist wie folgt: Ich brauche den Launcher einen Klassenordner zu übergeben, die devtools auslösen startet neu. Dieser Ordner ist bis zur Ausführung nicht bekannt.

Ich übergebe -Downloader.path =/Benutzer /..../ class_folder. Wenn ich versuche, einen XML-Anwendungskontext zu erstellen, erhalte ich eine FnotF-Ausnahme. "Beans.xml" ist da.

Ich habe versucht, -Dloader.path = file:/Users ... und -Dloader.path = file: // Benutzer ...

Ich dachte über den Launcher Quelle Modifizieren eines der verwenden Befehlszeilenargumente als der letzte Klassenpfadeintrag.

Aber es scheint ein bisschen über Bord, wenn die Funktionalität bereits da ist.

Irgendwelche Gedanken?

Vielen Dank!

+0

Ich erinnere mich an das Dateiprotokoll in Form von 'file: /// User ...'. Liege ich falsch? Und was ist dein volles Kommando? Hast du schon mal '--loader.path = xxx' probiert? –

+0

Ich werde es versuchen. Laut anderen Posts ist das Präfix "Datei" nicht notwendig – efekctive

+0

Ja, Sie haben Recht. Sie sind zwei verschiedene Wege. Wenn Sie jedoch eine Datei als Präfix angeben, sollte dies das Dateiprotokollformat sein. –

Antwort

0

Ich bin nicht wirklich sicher, was Ihre Konfiguration korrekt ist oder nicht. Aber Referenz von Spring Boot könnte hilfreich sein.

# ---------------------------------------- 
# DEVTOOLS PROPERTIES 
# ---------------------------------------- 

# DEVTOOLS (DevToolsProperties) 
spring.devtools.livereload.enabled=true # Enable a livereload.com compatible server. 
spring.devtools.livereload.port=35729 # Server port. 
spring.devtools.restart.additional-exclude= # Additional patterns that should be excluded from triggering a full restart. 
spring.devtools.restart.additional-paths= # Additional paths to watch for changes. 
spring.devtools.restart.enabled=true # Enable automatic restart. 
spring.devtools.restart.exclude=META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties # Patterns that should be excluded from triggering a full restart. 
spring.devtools.restart.poll-interval=1000 # Amount of time (in milliseconds) to wait between polling for classpath changes. 
spring.devtools.restart.quiet-period=400 # Amount of quiet time (in milliseconds) required without any classpath changes before a restart is triggered. 
spring.devtools.restart.trigger-file= # Name of a specific file that when changed will trigger the restart check. If not specified any classpath file change will trigger the restart. 

Also, ich glaube, Sie für Eigenschaft spring.devtools.restart.additional-paths statt loader.path angeben sollten.

Bitte versuchen Sie es und lassen Sie es wissen, egal, ob es funktioniert oder nicht.


Bitte fügen layout auf Ihre spring-boot-maven-plugin Konfiguration wie folgt vor, wenn Sie es nicht bereits hinzufügen:

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

Und die Detail-Eigenschaften sind hier aufgeführt: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#executable-jar-property-launcher-features.

Von diesem Punkt denke ich, dass Sie es schaffen können.

+0

Das Problem scheint die Eclipse-Konfiguration zu sein. running maven install erzeugt das korrekte manifest.mf und jar, aber wenn ich in maven-Abhängigkeiten nachschaue, kann PropertiesLauncher nirgends gefunden werden. Eclipse kann es in den Debug-Konfigurationen nicht als Hauptklasse finden. Ich werde dort anfangen – efekctive

+0

Ein letztes Update: Eclipse ist ziemlich nutzlos, Spring-Boot-Anwendungen zu debuggen.Der PropertiesLauncher wird dynamisch generiert (er befindet sich im ausführbaren jar, aber nicht in boot-loader-tools jar). Daher macht das Debuggen des Maven-Projekts in Eclipse keinen Sinn, weil es blind die Klasse startet, die von einem Launcher verarbeitet werden soll. Also werde ich jdb verwenden und wahrscheinlich wird es als – efekctive

+0

Der Kern des Problems erwartet funktioniert, ist, dass letzter Klassenordner auf den Feder-Boot-Classpath hinzugefügt werden muss, damit der Neustart die frischen Klassen nimmt. Es sei denn, zusätzliche Pfade fügen es beim Booten hinzu – efekctive