【发布时间】:2020-09-07 09:31:15
【问题描述】:
我正在处理一个项目并且有一个用例,我需要从 JAR 外部为 Spring Boot 提供 application.properties 文件。
根据Baeldung,获取application.properties的优先顺序是
- 当前目录的 /config 子目录
- 当前目录
- 类路径 /config 包
- 类路径根
前两个的问题是我需要导航到包含配置的目录才能运行 JAR。在本地工作时听起来没有问题,但在通过 CI/CD 框架部署在远程主机上时,这不是一个可行的解决方案。
我正在尝试使用类路径找到一种机制,并避免使用 here 中提到的 Spring Boot 命令行选项或设置环境变量。
我无法弄清楚如何在运行 FAT JAR 时设置类路径并一起指定配置。如果可以的话,请帮我弄清楚!
提前谢谢:)
编辑:我知道有一些方法可以使用 Spring Boot 的命令行选项来实现这一点,例如 spring.config 或 loader.path 等。
我试图找到一个基于类路径和目录结构的更隐含的解决方案,只是为了减少它与正在使用 Spring Boot 的事实的耦合。
【问题讨论】:
-
你试过用
java -jar app.jar --spring.config.location=another-location.properties -
嘿,我希望直接使用类路径,而不必使用提供的 Spring Boot 运行时选项,例如 spring.config、loader.config 等。只需 JAR、属性文件和类路径,指定 JAR 和配置所需的位置. (最后 2 个优先选项)
标签: java spring spring-boot config executable-jar