gpt4 book ai didi

ruby - 如何让 Rake 任务在所有其他任务之后运行? (即 Rake AfterBuild 任务)

转载 作者:数据小太阳 更新时间:2023-10-29 06:32:31 24 4
gpt4 key购买 nike

我是 Rake 的新手,并使用它来构建 .net 项目。我感兴趣的是有一个摘要任务打印出已完成的摘要。我希望这个任务总是被调用,不管 rake 是用什么任务调用的。

有没有简单的方法可以做到这一点?

谢谢


更新问题,回复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

即使赏金没有了,我们也非常感谢任何进一步的帮助。 (可悲的是,我不认为我可以提供另一个赏金。)

最佳答案

你应该可以用“增强”来做到这一点:

Rake::Task["my_task"].enhance do
Rake::Task["my_after_task"].invoke
end

这将导致在“my_task”之后调用“my_after_task”。

如果你想将它应用到所有任务,只需遍历所有任务并为每个任务调用增强:

Rake::Task.tasks.each do |t| 
t.enhance do
Rake::Task["my_after_task"].invoke
end
end

完整测试文件:

task :test1 do 
puts 'test1'
end

task :test2 do
puts 'test2'
end

Rake::Task.tasks.each do |t|
t.enhance do
puts 'after'
end
end

输出:

$ rake test1
test1
after

$ rake test2
test2
after

关于ruby - 如何让 Rake 任务在所有其他任务之后运行? (即 Rake AfterBuild 任务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1689504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com