2016-12-14 3 views
0

Ich verwende SpringBoot 1.4.2. Ich möchte in der Lage sein, meine SpringBoot-Anwendung über die Befehlszeile zu starten und zusätzliche externe JAR-Dateien anzugeben, die beim Starten der Anwendung ebenfalls überprüft werden sollen. Ich kann das spring-boot-maven-plugin nicht benutzen, weil ich nicht das Pum der Federboot-Anwendung haben werde, wenn ich es starten möchte.Fügen Sie SpringBoot zur Laufzeit dynamisch Jars hinzu

Ich habe das versucht folgende bisher, wo my-jar.jar die Feder Boot-Anwendung ist und external-jar.jar ist die externe jar ich in der Befehlszeile enthalten sein sollen:

java -cp my-jar.jar -Dloader.path=external-jar.jar -Dloader.main=com.my.Application org.springframework.boot.loader.JarLauncher 

Das startet aber nicht Bestandteil Scan external-jar.jar

java -cp external-jar.jar:my-jar.jar -Dloader.main=com.my.Application org.springframework.boot.loader.JarLauncher 

Dies wird nicht gestartet, @Autowired Bedingungen in external-jar.jar nicht zufrieden waren zu sagen, obwohl Klassen in my-jar.jar sie genügen. Ich habe versucht, die Reihenfolge der Gläser auf dem Klassenpfad umzukehren, das behebt das Problem nicht.

java -Dloader.path="external-jar.jar" -jar my-jar.jar 

Das startet aber nicht Bestandteil Scan external-jar.jar

Weg Mein Komponente Scannen an der Spitze meiner SpringApplication Klasse hat ein Paket Pfade sowohl für my-jar.jar und external-jar.jar und ich überprüft haben, dass, wenn mein external-jar.jar direkt in Referenzierung Pom es ist Komponente gescannt.

Antwort

1

Sie verwenden den falschen Launcher. Unterstützung für loader.path und loader.main wird von PropertiesLauncher zur Verfügung gestellt, aber Sie verwenden JarLauncher.

+0

Ich kann Ihnen ehrlich gesagt nicht genug danken! 'java -cp my-jar.jar -Downloader.path = external-jar.jar -Dloader.main = com.my.Application org.springframework.boot.loader.PropertiesLauncher' funktioniert – user783836

Verwandte Themen