我正在使用SpringBoot 1.4.2。我希望能够从命令行启动我的SpringBoot应用程序,并指定在启动应用程序时还应对其进行组件扫描的其他外部jar。我不能使用spring-boot-maven-plugin
,因为当我想启动它时,我不会有弹簧引导应用程序的pom。在运行时动态添加罐子到SpringBoot
我曾尝试以下,到目前为止,其中my-jar.jar
是弹簧启动应用程序和external-jar.jar
是外部罐子我想包括在命令行上:
java -cp my-jar.jar -Dloader.path=external-jar.jar -Dloader.main=com.my.Application org.springframework.boot.loader.JarLauncher
这将启动,但不组件扫描external-jar.jar
java -cp external-jar.jar:my-jar.jar -Dloader.main=com.my.Application org.springframework.boot.loader.JarLauncher
这启动失败,称external-jar.jar
@Autowired
条件不满意,即使在my-jar.jar
类并满足他们。我试过颠倒了类路径上的jar的顺序,但这并没有解决问题。
java -Dloader.path="external-jar.jar" -jar my-jar.jar
这将启动,但不组件扫描external-jar.jar
我SpringApplication类的顶部我的组件扫描路径有两种my-jar.jar
和external-jar.jar
一个包路径和内直接引用external-jar.jar
时,我已经验证了我的它是组件扫描。
我真的不能够感谢你! 'java -cp my-jar.jar -Dloader.path = external-jar.jar -Dloader.main = com.my.Application org.springframework.boot.loader.PropertiesLauncher' works – user783836