Я новичок в Rake и использую его для создания проектов .net. Меня интересует сводная задача, в которой выдается сводка о том, что было сделано. Я хочу, чтобы эту задачу всегда вызывали, независимо от того, с какими задачами вызывается rake.Как выполнить задачу Rake Task после всех других задач? (т. е. задача Rake AfterBuild)
Есть ли простой способ достичь этого?
Благодаря
Update на вопрос, отвечая на Patrick's answer то, что я хочу, это после того, как задача выполняется один раз после того, как все другие задачи, поэтому выход я хочу это:
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
и если
task :test3 =>[:test1, :test2]
puts 'test3'
end
$rake test3
test1
test2
test3
after
Несмотря на то, что щедрота ушла, дальнейшая помощь очень ценится. (Sadily я не думаю, что я могу предложить еще одну награду.)
GREAT! Это именно то, что я хочу. Мне было бы интересно узнать, что здесь происходит. Можете ли вы дать мне больше разъяснений о том, что происходит? Между тем, я посмотрю, что я могу найти в Google. – Chasler
ОК. Я понимаю, что происходит. Хорошая работа. Благодарю. – Chasler
Несомненно. В стороне, я на конференции и выследил Джима Вейриха (автора грабли), чтобы убедиться, что это лучший способ решить проблему. Его ответ заключался в том, что у Рейка нет встроенного способа сделать это, но он открыт для патча, если кто-то может придумать обобщенный метод для этого. Итак, код: приложение Rake имеет считыватель для отслеживания задач для запуска под названием «top_level_tasks». Поскольку он только для чтения, нам нужно его прочитать, обновить, а затем использовать instance_variable_set, чтобы вернуть это изменение в приложение. Если бы это было прочитано, мы могли бы все это в одной строке. –