我有一堆sql文件,我想在我的gradle构建中执行。我想出了这个。
def sqlDir = new File('src/main/resources/')
task testSql << {
sqlDir.eachDirRecurse() { dir ->
dir.eachFileMatch(~/.*\.sql$/) {
// sql.execute(it.text)
println it
}
}
}
但是,我也想排除一些文件,我可以使用if代码中的块和硬编码文件名。有人可以给我一个更清洁的解决方案来排除文件吗?
答案 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)
}
}