Je suis nouveau sur Rake et je l'utilise pour construire des projets .net. Ce qui m'intéresse est d'avoir une tâche récapitulative qui imprime un résumé de ce qui a été fait. Je veux que cette tâche soit toujours appelée, peu importe les tâches auxquelles rake a été invoqué.Comment exécuter une tâche Rake Task après toutes les autres tâches? (c'est-à-dire une tâche Rake AfterBuild)
Existe-t-il un moyen facile d'accomplir ceci?
Merci
mise à jour sur la question, en réponse à Patrick's answer ce que je veux est l'après tâche à exécuter une fois après toutes les autres tâches, de sorte que la sortie que je veux est:
task :test1 do
puts 'test1'
end
task :test2 do
puts 'test2'
end
Rake::Task.tasks.each do |t|
<Insert rake magic here>
# t.enhance do
# puts 'after'
# end
end
$ rake test1
test1
after
$rake test2
test2
after
$rake test1 test2
test1
test2
after
et si
task :test3 =>[:test1, :test2]
puts 'test3'
end
$rake test3
test1
test2
test3
after
Même si la générosité a disparu, toute aide supplémentaire très appréciée. (Sadily Je ne pense pas que je peux offrir une autre prime.)
GREAT! C'est exactement ce que je veux. J'aimerais savoir ce qu'est la magie ici. Pouvez-vous me donner plus d'explications sur ce qui se passe? En attendant, je verrai ce que je peux trouver sur google. – Chasler
OK. Je comprends ce qui se passe. Bon travail. Merci. – Chasler
Bien sûr. En aparté, je suis à une conférence et j'ai retrouvé Jim Weirich (l'auteur de rake) pour voir si c'était la meilleure façon de résoudre le problème. Sa réponse a été que Rake n'a pas de façon intégrée de le faire, mais il est ouvert à un correctif si quelqu'un peut trouver une méthode généralisée pour le faire. Donc le code: L'application Rake a un lecteur pour garder une trace des tâches à exécuter appelées 'top_level_tasks'. Parce qu'il est en lecture seule, nous devons le lire, le mettre à jour, puis utiliser instance_variable_set pour repasser le changement dans l'application. Si c'était écrit, nous pourrions le faire en une seule ligne. –