通过 maven 调用的 liquibase,无法设置自定义 属性
liquibase invoked through maven, unable to set custom property
我的 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 属性桥接到 "system properties",可以这样做:
<systemProperties>
<db.appUser>${mavenVariable}</db.appUser>
</systemProperties>
或者只提供文字而不是 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 属性桥接到 "system properties",可以这样做:
<systemProperties>
<db.appUser>${mavenVariable}</db.appUser>
</systemProperties>
或者只提供文字而不是 maven 变量。