简而言之,我想查找所有以* .sql结尾的文件,并复制它们(如果存在)。
etc目录中可能有0个或多个文件。

    File sqlfiles = file('etc/' + '*.sql')
    logger.info("Looking for SQL files: " + sqlfiles);
    if (sqlfiles.exists())
    {
        logger.info("Found log SQL file: " + sqlfiles);

        copy
                {
                    from sqlfiles
                    into "$rpmStoredir"
                }
    }
    else
    {
        logger.warn("No SQL file found - skipping");
    }

用我的代码,通配符在这里不起作用。

因此,如下所示在副本中添加“包含”是可行的,但是我只想弄清楚如果文件不存在时如何添加记录器
copy
{
    from "etc/"
    include "*.sql"
    into "$rpmStoredir"
}

最佳答案

file(...)是错误的方法,因为它返回单个java.io.File
你可以做类似的事情

FileTree myTree = fileTree('etc') {
   include '*.sql'
}
if (myTree.empty) {
  ...
} else {
   copy {
      from myTree
      ...
   }
}

参见Project.fileTree(Object, Closure)FileTree

09-06 05:57