Java 在多模块工程中使用Liquibase
我有两个模块(Java 在多模块工程中使用Liquibase,java,spring-boot,liquibase,multi-module,Java,Spring Boot,Liquibase,Multi Module,我有两个模块(editor和engine)可以与公共数据库一起工作。对于脚本的部署,我想使用liquibase。我不想在两个地方复制相同的脚本,我想在一个地方管理它们。为此,我创建了一个单独的模块(数据库结构),它只包含我的脚本和参数spring.liquibase.change log=classpath:db/changelog/db.changelog master.xml)。我已将此模块(数据库结构)添加为其他模块的依赖项。最终结构如下所示(为了紧凑,省略了等级): 但是,当我在edit
editor
和engine
)可以与公共数据库一起工作。对于脚本的部署,我想使用liquibase
。我不想在两个地方复制相同的脚本,我想在一个地方管理它们。为此,我创建了一个单独的模块(数据库结构
),它只包含我的脚本和参数spring.liquibase.change log=classpath:db/changelog/db.changelog master.xml
)。我已将此模块(数据库结构
)添加为其他模块的依赖项。最终结构如下所示(为了紧凑,省略了等级):
但是,当我在editor
中启动测试时,例如(EditorControllerTest.java
),我得到一个错误,没有找到Liquibase:
Caused by: java.lang.IllegalStateException: Cannot find changelog location: class path resource [db/changelog/db.changelog-master.yaml] (please add changelog or check your Liquibase configuration)
但是,我在数据库结构
模块的application.properties
中设置了spring.liquibase.change log
参数。为什么它被忽视
如果我在编辑器
模块中指定此选项,则一切正常。如何在数据库结构
模块的同一位置收集Liquibase
的所有逻辑工作
但是,我在中设置了spring.liquibase.change-log参数
数据库结构模块中的application.properties。为什么
忽视
在运行时,与任何资源或类一样,在根目录(
/
)的类路径上找到的第一个application.properties将被拾取,其他属性将被忽略。集中式配置非常有用。请看这里,您可以阅读所有关于属性文件以及如何指定多个属性文件的信息。
Caused by: java.lang.IllegalStateException: Cannot find changelog location: class path resource [db/changelog/db.changelog-master.yaml] (please add changelog or check your Liquibase configuration)