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