2017-01-03 39 views
0

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

考虑一个ModuleA(一个普通的jar)和一个ModuleB(一个自举的jar)。 ModuleB具有对moduleA的依赖性,所以当moduleB启动时,moduleA在classpath上。

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). 

回答

0

不,这是不可能的。没有几个application.propertiesapplication.yml的组成。这会让事情变得很难追踪。您可以检查/env端点以检查添加到环境中的内容。你也可以看到哪些属性来源(=哪个“文件”)被加载。

阅读文档,我意识到你的确可以理解相反的意思。请创建一个问题来请求文档更加明确。

+0

我做了一些更多的研究,因为奇怪的是多个application.properties可以工作,但事实证明这是行不通的。我有 moduleA/application-dev.properties moduleB/application.properties 所以你确实是对的。我不知道/ env url,可能非常有用(但同时也是危险的)。 –

相关问题