Créé dynamiquement des tâches de type de Copie est toujours UP-to-DATE

Je vous ai préparé un script très simple, qui illustre le problème que je vois à l'aide de Gradle 1.7 (besoin de rester avec elle à cause de certains plugins pas encore l'appui des versions plus récentes).

Je suis en train de créer dynamiquement des tâches dont chacune correspond à un fichier dans le répertoire du projet. Cela fonctionne bien, mais les tâches que je dois créer jamais exécuté dès que je leur en attribuer type "Copie".

Voici mon problème 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'

de cette façon, mes tâches ne soit pas exécutée lorsque j'appelle de la tâche par défaut en appelant simplement gradle:

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

BUILD SUCCESSFUL

Si je supprimer le type Copy de ma dynamique de la tâche (décommentant la ligne ci-dessus), mes tâches sont exécutées:

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

BUILD SUCCESSFUL

(Vous aurez besoin de créer un nom de dossier templates dans le même répertoire où build.gradle est situé et mettre quelques fichiers vides en y pour exécuter le test)

Selon la sortie de débogage:

Sauter tâche": myDist-template1 " comme il y a pas de fichiers source.

Sauter tâche": myDist-template2 " comme il y a pas de fichiers source.

Alors, comment puis-je spécifier les fichiers source et de faire mes Copy tâches de s'exécuter?
J'ai essayé d'ajouter

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

à la tâche corps, j'ai essayé de l'attribution de la tâche inputs.source file('/my/existing/file'), sans succès.
Pourriez-vous nous conseiller sur la façon de modifier mon script simple de quitter dynamique de création de tâches et de garder ma dynamique de tâches de type Copy?

Merci!

Edit:
Tout à droite, de cette façon, la tâche est appelée:

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

mais il semble que je me doit toujours spécifier from/into. Il ne suffit pas de le faire dans la doLast{} corps.

OriginalL'auteur Sergey Shcherbakov | 2013-11-27