如何从外部配置文件访问执行jar中的类路径

问题描述 投票:0回答:1

我开发了Spring Boot 2.2.1应用程序。我有多个配置文件(application- {provile} .yml),并使用liquibase自动迁移数据库。一切工作都很好(如果可以说关于Java的话,哈哈)。但是在生产环境中[[我必须将配置文件作为外部yml文件从远处传递过来

我正在执行以下外壳程序以启动应用程序:

java.exe -jar orgstructure-service-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod -Dspring.config.location=./application-prod.yml

应用程序正在启动,并且除了liquibase之外,配置均适用。 Liquibase使用classpath进行changelog配置:

liquibase: change-log: classpath:db/changelog/changelog.xml

但是从外部(jar外部)application.yml无法访问changelog,因此liquibase无法应用迁移。如何解决此问题并使liquibase在这样的环境中工作?    
java spring-boot configuration liquibase
1个回答
0
投票
我找到了解决此问题的方法,我将applicatiom-prod.yml放在其中的两个文件上applicatiom-prod.yml存储在./src/main/resources目录中,并且打包在jar中,第二个名为application-customization.yml,它与jar文件分开,但位于同一目录中。 application-prod.yml包含秒,如下所示:

spring: profiles: active: prod include: customization liquibase: change-log: classpath:db/changelog/changelog.xml logging: level: root: INFO org.springframework: INFO org.hibernate.SQL: INFO org.hibernate.type: INFO liquibase: INFO

定制保留诸如数据库和授权服务器连接之类的设置。    
© www.soinside.com 2019 - 2024. All rights reserved.