Используя подстановочный знак в Gradle Files, скопируйте его, если он существует - PullRequest
0 голосов
/ 29 мая 2019

Короче говоря, я хочу найти все файлы, заканчивающиеся * .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");
    }

С моим кодом подстановочный знак здесь не работает.

Таким образом, добавление «include» к копии, как показано ниже, работает, но я просто хочу выяснить, как добавить регистратор, если файл не существует

copy
{
    from "etc/"
    include "*.sql"
    into "$rpmStoredir"
}

1 Ответ

1 голос
/ 29 мая 2019

file(...) - неправильный метод для использования, поскольку он возвращает один java.io.File

Вы могли бы сделать что-то вроде

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

См. Project.fileTree (Объект, Закрытие) и FileTree

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...