在运行时将jar文件添加到spring-boot类路径

时间:2015-02-25 17:37:17

标签: plugins classpath spring-boot

我想使用 spring-boot 插件开发模块化应用程序。插件将使用 spring-plugin 进行处理,这些插件存储在目录中的jars文件中(例如:/home/application/plugins)。如何在运行时将jar文件添加到应用程序类路径中并加载这些jar文件中的类和bean(插件)。 最好的问候,HLicea

2 个答案:

答案 0 :(得分:3)

您需要使用PropertiesLauncher而不是JarLauncher:

java -cp "yourBoot.jar" -Dloader.path=plugins/ -Dloader.main=your.mainClass org.springframework.boot.loader.PropertiesLauncher

这将使java加载plugins目录中的jar并弹出将标记为@Configuration的那些jar中的所有类加载到上下文中。

答案 1 :(得分:2)

我认为“标准”java方法应该适用于此,例如对于Linux:

java -cp "yourBoot.jar:plugins/*" org.springframework.boot.loader.JarLauncher

唯一的技巧就是我从引导程序的uberjar中获取了Main-Class