liquibase - liquibase 通过 maven 调用,无法设置自定义属性
问题描述
我的 liquibase 文件具有以下 sql 元素:
<sql splitStatements="false">
GRANT insert,select,update,delete ON ${database.defaultSchemaName}.someTable TO ${db.appUser}
</sql>
如果我像这样调用 Maven:
mvn liquibase:update -Ddb.appUser=VALUE
有用。但是如果我想在 pom.xml 中的某个地方指定它呢?假设一些开发人员配置文件,让我从一遍又一遍地设置变量中解脱出来,并且能够像这样构建:
mvn -Pdevel liquibase:update
我试图在 Maven 属性中设置它,但它没有在那里被选中。那么我们如何在 maven 中设置属性以在 liquibase 脚本中替换呢?
解决方案
最终找到它:
必须将 Maven 属性桥接到“系统属性”中,可以这样做:
<systemProperties>
<db.appUser>${mavenVariable}</db.appUser>
</systemProperties>
或者只是提供文字而不是 Maven 变量。