Étant donné quelque chose comme:
namespace :my_tasks do
task :foo do
do_something
end
task :bar do
do_something_else
end
task :all => [:foo, :bar]
end
Comment faire pour que ce :all
soit la tâche par défaut, de sorte que l'exécution rake my_tasks
l'appellera (au lieu d'avoir à appeler rake my_tasks:all
)?
Réponses:
Placez-le en dehors de l'espace de noms comme ceci:
Aussi ... si vos tâches nécessitent des arguments, alors:
Remarquez comment dans le 2ème exemple vous pouvez appeler la tâche le même nom que l'espace de noms, c'est-à-dire 'mes_tâches'
la source
rake all
. Dans ce cas, j'ai d'autres espaces de noms, donc ce que je veux, c'est pouvoir appeler la tâchemy_tasks:all
commerake my_tasks
, pas commerake all
.Pas très intuitif, mais vous pouvez avoir un espace de noms et une tâche qui portent le même nom, ce qui vous donne effectivement ce que vous voulez. Par exemple
Maintenant, vous pouvez exécuter des commandes comme,
et
la source
task :my_task => ['my_task:foo', 'my_task:bar']
Je vous suggère de l'utiliser si vous avez beaucoup de tâches dans l'espace de noms.
Et puis, vous pouvez exécuter toutes les tâches dans l'espace de noms en:
Avec cela, vous n'avez pas à vous soucier de changer votre tâche: all lorsque vous ajoutez de nouvelles tâches dans cet espace de noms.
la source
J'utilise ce Rakefile pour le concombre:
Alors si je tape juste:
Il exécute la tâche par défaut, qui exécute des tests rapides et lents.
J'ai appris cela sur le blog de Cheezy .
la source
La façon dont je lis la question d'Obvio171 est qu'il demande 1) une manière systématique d'appeler une certaine tâche dans un espace de noms en invoquant l'espace de noms en tant que tâche.
J'ai souvent rencontré le même besoin. J'aime regrouper logiquement les tâches dans des espaces de noms. Souvent, ce regroupement ressemble à une hiérarchie. D'où le désir d'invoquer le groupe me semble tout à fait logique.
Voici ma prise:
1) ... ou demandait, il y a des années. Néanmoins, une question toujours intéressante.
la source
Ajoutez la tâche suivante en dehors de l'espace de noms:
Gardez à l'esprit que vous pouvez avoir une tâche portant le même nom que l'espace de noms.
Et voici un exemple plus grand, qui montre comment vous pouvez utiliser des tâches, qui ont le même nom que l'espace de noms, même lors de l'imbrication d'espaces de noms:
Copiez-le et essayez-le.
la source
Basé sur la solution de Rocky Tâche par défaut pour l'espace de noms dans Rake
Et la réponse de cette dexter Y a-t-il un moyen de connaître la tâche de râteau actuelle?
la source
En combinant les réponses de Szymon Lipiński et de Shyam Habarakada, voici ce que je pense être la réponse la plus idiomatique et la plus concise:
vous permet de le faire
rake my_tasks
tout en évitant l'invocation fastidieuse des sous-tâches.la source