2014-03-06 44 views
0

我們使用liquibase作爲數據庫版本控制和gradle作爲構建工具。 目前我們使用Liquibase 3.0.1 Gradle集成

liquibase in version 2.0.5 
com.augusttechgroup:gradle-liquibase-plugin:0.7 

由於其固定在2.0.5中liquibase的錯誤我們不得不去版本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) 

有沒有其他的選擇?

回答

1

對於Liquibase 3,您需要使用Gradle Liquibase插件的1.0.0-SNAPSHOT版本。有關詳細信息,請參閱plugin page上的自述文件。

4

您可以使用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。