2017-09-04 5 views
0

私は自分のSQLファイルに基づいてXMLファイルを生成しようとしています。私はそれを使用しますplugin.eachchangesetを使用できますか?そして、なぜ私はメソッドのsingnatureのためのエラーを得たのですか?そのプラグインのドキュメントが少し悪い...sqlFILEとliquibaseを使用したXML

@Grapes(
    @Grab(group='org.liquibase', module='liquibase-groovy-dsl', version='1.2.2') 
) 

import groovy.io.FileType 
import liquibase.changelog.* 

def databaseChangeLog() { 

def list = [] 
def dir = new File(".") 
dir.eachFileRecurse (FileType.FILES) { file -> 
list << file 
    list.each {      
     changeSet(id: 'sql-file') { 
     sqlFile(path: $list, stripComments: 'true', splitStatements: 'true', encoding: 'utf8') 
} 
    } 
      } 
} 

error

答えて

1

私はあなたがここに少なくとも2つの問題を持っていると信じています。

まず、listオブジェクトが繰り返し処理される前に、繰り返し処理しないでください。しかし、実際には、そのオブジェクトはあまり有用ではありませんし、あなたはeachFileRecurseであなたのことを直接行うことができると思います。

第2に、関数定義(def databaseChangeLog() {})と、プラグインのdatabaseChangeLog代理人に電話をかけてみたと思います。

だからあなたのコードは、おそらく次のようになります。答えを

@Grapes(
    @Grab(group='org.liquibase', module='liquibase-groovy-dsl', version='1.2.2') 
) 

import groovy.io.FileType 
import liquibase.changelog.* 

def dir = new File(".") 

databaseChangeLog { 
    dir.eachFileRecurse(FileType.FILES) { file -> 
    changeSet(id: 'sql-file') { 
     sqlFile(path: file.absolutePath, stripComments: 'true', splitStatements: 'true', encoding: 'utf8') 
    } 
    } 
} 
+0

おかげで、あなたは右の反復でありますが、私はまだ 'changeSet'のエラーを持っています –

関連する問題