sql - 在Gradle中使用Groovy执行SQL文件

标签 sql groovy gradle

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

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

task testSql << {

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

}

但是,我也想排除一些文件,我可以在代码中使用if块和对文件名进行硬编码来做到这一点。有人可以给我清洁器解决方案以排除文件吗?

最佳答案

正如您所指出的,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)
    }
}

关于sql - 在Gradle中使用Groovy执行SQL文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729844/

相关文章:

xml - 向 groovy MarkupBuilder 或 StreamingMarkupBuilder 添加动态元素和属性

groovy - 如何使用groovy仅获取没有标题的sql查询的值

安卓 : Override a certain class in a library dependency

跨多个 SQL 服务器的 SQL 查询

java - 在 jooq 中设置 NULL 值

mysql - 多个不同的计数与 where

java - 安卓 Gradle : what does "lintOptions abortOnError false" mean?

sql - 如何创建一个列来显示另一列中的值出现的次数而不合并 SQL Server 中的行

java - 在Java中执行groovy文件

java - 无法合并 Dex 错误 : Android Studio 3. 0