我们使用 liquibase 进行数据库版本控制,使用 gradle 作为构建工具。
目前我们使用
liquibase in version 2.0.5
com.augusttechgroup:gradle-liquibase-plugin:0.7
由于 liquibase 中的一个错误已在 2.0.5 中修复,我们被迫转到版本 3.0.x。
不幸的是,gradle 插件不再工作了。
:dropAll
Liquibase Update Failed: liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lliquibase/database/Database;
SEVERE 06.03.14 14:28:liquibase: liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lliquibase/database/Database;
java.lang.NoSuchMethodError: liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lliquibase/database/Database;
at com.augusttechgroup.gradle.liquibase.Main.doMigration(Main.java:614)
还有其他选择吗?
您可以使用 JavaExec 自行开发,而不需要依赖该插件。
例子:
configurations {
liquibase
}
dependencies {
liquibase '<jdbc-driver>'
liquibase 'org.liquibase:liquibase-core:3.0.1'
}
task dropAll(type: JavaExec) {
group = "Liquibase"
classpath configurations.liquibase
main = "liquibase.integration.commandline.Main"
args "--changeLogFile=<path and filename>"
args "--username=<value>"
args "--password=<value>"
args "--url=<value>"
args "--driver=<value>"
args "dropAll"
}
这样您就不再依赖该插件,并且可以使用您想要的任何版本的 Liquibase。反对的是,您将无法在 Groovy 中编写变更日志,而是坚持使用 liquibase 标准 xml。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)