在Gradle中使用Groovy执行SQL文件

时间:2014-02-12 13:50:32

标签: sql groovy gradle

我有一堆sql文件,我想在我的gradle构建中执行。我想出了这个。

def sqlDir = new File('src/main/resources/') 

task testSql << {

    sqlDir.eachDirRecurse() { dir ->
        dir.eachFileMatch(~/.*\.sql$/) {
            //      sql.execute(it.text)
                    println it
            }
    }

}

但是,我也想排除一些文件,我可以使用if代码中的块和硬编码文件名。有人可以给我一个更清洁的解决方案来排除文件吗?

1 个答案:

答案 0 :(得分:4)

正如您所指出的,Gradle中有一个[fileTree]解决方案

你可以以某种方式使用它。请参阅详细链接。

def sqlDir = file 'src/main/resources/' 

task testSql << {
    fileTree(dir: sqlDir, include: "**.sql", exclude: ["somefilename.sql", "otherfilename.sql"]).each {
        sql.execute(it.text)
    }
}