2017-09-19 1 views
0

Dites que j'utilise un greffon Gradle qui définit la tâche foo, qui est à jour dans certaines conditions. Malheureusement, je n'ai pas la source, donc je ne sais pas quand c'est.Existe-t-il un moyen d'ajouter une condition personnalisée à jour tout en préservant la condition d'origine?

Je voudrais faire en sorte que foo soit à jour si la condition d'origine est vraie, et si une condition personnalisée est également vraie.

Je sais que je peux ajouter mon état personnalisé comme ceci:

foo.outputs.upToDateWhen { 
    return myCondition == true 
} 

Mais je veux être en mesure de faire quelque chose comme ceci:

foo.outputs.upToDateWhen { 
    return super.upToDateWhen && myCondition == true 
} 

Est-il possible de faire ce que je suis à la recherche de? Puis-je ajouter une condition à jour pour que je puisse conserver l'état d'origine à jour?

Répondre

1

Ce que vous décrivez est en fait le comportement par défaut. La description de la méthode upToDateWhen dans the docs est:

Ajoute un prédicat pour déterminer si les résultats de cette tâche sont à jour. La fermeture donnée est exécutée au moment de l'exécution de la tâche. La fermeture est passée à la tâche en tant que paramètre. Si la fermeture renvoie false, les sorties de la tâche sont considérées comme obsolètes et la tâche sera exécutée.

Vous pouvez ajouter plusieurs prédicats de ce type. Les sorties de tâches sont considérées comme obsolètes lorsqu'un prédicat renvoie false.