我开发了Spring Boot 2.2.1应用程序。我有多个配置文件(应用程序-{provile}. yml)并使用liquibase自动迁移数据库。一切工作几乎正常(如果可以说Java,哈哈)。但是在正式生产环境中,我必须将配置文件作为外部yml文件从我们这边传递。
我正在执行以下shell以启动应用程序:
java.exe -jar orgstructure-service-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod -Dspring.config.location=./application-prod.yml
应用程序正在启动并且配置正确应用,除了liquibase。Liquibase使用类路径进行更改日志配置:
liquibase:
change-log: classpath:db/changelog/changelog.xml
但从外部(jar外部)应用程序无法访问changelog。因此,yml liquibase不能应用迁移。如何解决这个问题,让liquibase在这样的环境下工作?
我找到了这个问题的解决方案,我已经在其中的两个文件上分离了applicatiom-prod.ymlapplicatiom-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
自定义包含数据库和授权服务器连接等设置。
问题内容: 我想做一些我认为并不困难的事情。 我有一个要打包为jar的应用程序,因为我有大约30个依赖项,并且我希望能够部署一个文件。 我有一些配置文件-一个属性文件和一个spring配置文件,以及我的log4 props文件- 我想在jar外部使用。我想我希望,如果我将它们与jar放在同一目录中,它将在运行时找到它们,但事实并非如此。 在开发过程中,我将这些文件放在eclipse项目的类路径的根
我有一个使用第三方jar的Spring启动应用程序。此jar需要一个xml配置文件,该文件必须由客户端在运行时(单独)提供,并且不能预打包。第三方lib使用以下顺序加载该文件(Is和空检查): 我不能更改lib加载文件的方式(例如使用Spring的资源加载),所以它必须在类路径上。因此,我似乎失去了像java-jarmy-spring-boot-app.jar一样执行它的可能性,因为选项阻止添加任
问题内容: 我正在使用FlatPack来分析和加载平面文件中的数据。这需要加载一个配置文件,该文件存储平面文件各列的映射。 我有一个常量来定义映射文件的位置: 我有一个parse(File dataFile)方法实际上执行解析: 当我罐子了一切并运行它作为一个罐子-它炸弹出来了。该文件虽然在罐子里。 我该怎么办? 我已经看过这个问题以及关于访问jars中文件的问题,他们都建议暂时提取文件。我不想这
我有一个标准的Spring靴项目。 我有一个/src/main/resources文件夹,其中有几个配置文件。 我怎样才能用Gradle做到这一点呢?
运行maven命令: mvn Flyway:repair-flyway.config File=MyFlywayConfig.properties 返回错误: 有没有人知道如何在外部配置的基础上完成flyway插件的目标?
问题内容: 我有一个要求,要将所有logback配置都放在war文件之外。目前,我已将配置文件(logback.xml)放在类路径上。我正在使用JBOSS EAP Web应用程序服务器,请提出如何实现相同的建议。 问题答案: 进入jboss启动/运行脚本并添加以下选项: 的java -Dlogback.configurationFile = /路径/到/ config.xml中 chapters.