Динамически создаваемая задача типа Copy всегда UP-TO-DATE

Мы подготовили очень простой скрипт, который иллюстрирует проблему, которую я вижу при использовании Gradle 1.7 (нужно придерживаться его из-за некоторых плагинов, которые еще не поддерживают более новые версии) .I '

Я пытаюсь динамически создавать задачи, каждая из которых соответствует файлу в каталоге проекта. Это работает нормально, но задачи, которые я создаю, никогда не выполняются, как только я назначаю им тип 'Копировать».

Вот моя проблема:build.gradle

file('templates').listFiles().each { File f ->

    // THIS LINE DOES NOT WORK
    task "myDist-${f.name}" (type: Copy) {

    // NEXT LINE WORKS
    //task "myDist-${f.name}" {
        doLast {
            println "MYDIST-" + f.name
        }
    }
}

task distAll(dependsOn: tasks.matching { Task task -> task.name.startsWith("myDist")}) {
    println "MYDISTALL"
}

defaultTasks 'distAll'

таким образом, мои задачи не выполняются, когда я просто вызываю вызов задачи по умолчанию:gradle

MYDISTALL
:myDist-template1 UP-TO-DATE
:myDist-template2 UP-TO-DATE
:distAll UP-TO-DATE

BUILD SUCCESSFUL

Если я удалю типCopy из моей динамической задачи (раскомментируя строку выше) мои задачи выполняются:

MYDISTALL
:myDist-template1
MYDIST-template1
:myDist-template2
MYDIST-template2
:distAll

BUILD SUCCESSFUL

(Вы'Вам нужно будет создать имя папкиtemplates в том же каталоге, гдеbuild.gradle находится и поместите туда пару пустых файлов для запуска теста)

Согласно выводу отладки:

Пропуск задачи: MyDist-template1' так как у него нет исходных файлов.

Пропуск задачи: MyDist-template2' так как у него нет исходных файлов.

Так как я могу указать исходные файлы и сделать мойCopy задачи выполнить? Я'мы пытались добавить

from( '/absolute/path/to/existing/file' ) {
    into 'myfolder'
}

в теле задачи, япопробовал назначить задачуinputs.source file('/my/existing/file') без успеха. Не могли бы вы посоветовать, как изменить мой простой скрипт, оставляя динамическое создание задач и сохраняя мои динамические задачи типа?Copy

Спасибо!

Редактировать: Хорошо, таким образом, задача вызывается:

file('templates').listFiles().each { File f ->
    task "myDist-${f.name}" (type: Copy) {
        from f
        into 'dist'
        doLast {
            println "MYDIST-" + f.name
        }
    }
}

но, похоже, я всегда должен указывать /frominto, Это неэтого достаточно в теле doLast {}.

Ответы на вопрос(4)

Ваш ответ на вопрос