Spring 引导 Liquibase 未拾取所有 application.yml 文件

Spring Boot Liquibase not picking up all application.yml files

我有一个 Spring Boot 1.4.3 项目,它应该在启动时加载 Liquibase。它应该是一个简单的配置,但我花了很多时间来完成以下工作。

考虑一个 ModuleA(一个普通的 jar)和一个 ModuleB(一个引导的 jar)。 ModuleB 依赖于 moduleA,所以当 moduleB 启动时,moduleA 在它的类路径上。

ModuleA 包含一些通用属性,编码在 application.yml 中,一些在 application.properties 文件中。 ModuleB 还有一个 application.yml 文件,其中包含更具体的属性。

在 ModuleA 中,我在 application.yml 文件中定义了我的 Liquibase 属性。人们会期望在 ModuleB 启动时,liquibase 属性将可用。然而,这不起作用。

如果我将 liquibase 属性放在 ModuleA 的 application.properties 中,则在 ModuleB 启动时选择这些属性。

所以我的问题是:类路径上不可能有两个'application.yml'文件吗?我在 documentation 中找不到任何相关内容,事实上,在第一部分中它提到它应该是可能的:

14. Application properties outside of your packaged jar (application.properties and YAML variants).
15. Application properties packaged inside your jar (application.properties and YAML variants).

不,这不可能。没有几个application.propertiesapplication.yml的组合。这将使事情很难追踪。您可以检查 /env 端点以检查添加到环境中的内容。您还可以查看加载了哪些 属性 个源(=哪个 "file")。

看了文档,发现你的理解可能恰恰相反。请创建一个问题以请求文档更明确地说明它。