4

我在 rake 中有一个构建任务,它定义了以下依赖项:

desc 'Builds the App'
task :rebuild_dev => ["solr:start", "db:drop", "db:create", "db:migrate", "spec", "solr:stop"]

第一个任务“solr:start”启动 Solr 索引服务器。现在,如果构建失败(可能是规范测试失败),则不会执行“solr:stop”任务。并且服务器没有停止。

有没有办法指定一个清理任务或一个即使依赖任务之一失败也始终运行的任务?就我而言,要始终确保“solr:stop”执行...

4

1 回答 1

7

你只需要使用 Ruby 的确保系统

desc "Builds the App"
task :rebuild_dev do
  begin
    ["solr:start", "db:drop", "db:create", "db:migrate", "spec"].each do |t|
      Rake::Task[t].execute
    end
  ensure
    Rake::Task["solr:stop"].execute
  end
end
于 2010-10-21T19:00:56.080 回答