【问题标题】:Rake abort tasks not executing in orderRake 中止任务未按顺序执行
【发布时间】:2014-01-23 20:12:33
【问题描述】:

我有一个用于为应用程序配置环境的 Rakefile,我遇到了一个问题,即 Rake 任务中止,因为特定的 Gem 安装在一个 preciding 任务中。

请看下面的 Rakefile,Rake 在:configure_db 任务中的require 'data_mapper' 行中止,:configure_db:build 调用,它前面的任务是:bower_install:bundle_install

ENV['JASMINE_CONFIG_PATH'] = 'spec/js/support/jasmine.yml'

task :bower_install do
        system 'bower install'
end

task :bundle_install => :bower_install do
        system 'bundle install'
end

task :configure_db => :bundle_install do
        require 'data_mapper'

        DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/vela.db")

        require './models/User.rb'

        DataMapper.finalize
        DataMapper.auto_migrate!
end


desc "Starts the Rack server so we can run our tests"
task :default => :bundle_install do
        require 'sinatra'
        require 'rspec/core/rake_task'
        require 'jasmine'
        load 'jasmine/tasks/jasmine.rake'

        RSpec::Core::RakeTask.new(:spec)

        require './app'
    system 'rackup -D'
    Rake::Task["spec"].invoke
    Rake::Task["jasmine:ci"].invoke
end

task :build => :configure_db

【问题讨论】:

    标签: ruby-on-rails ruby sinatra rake rake-task


    【解决方案1】:

    在任务依赖方面,这个 Rakefile 和你的是等价的:

    task :a do
      puts 'running task a'
    end
    
    task :b => :a do
      puts 'running task b'
    end
    
    task :c => :b do
      puts 'running task c'
    end
    
    task :d => :c do
      puts 'running task d'
    end
    
    task :e => :c
    

    它给了我以下结果:

    $ rake a
    running task a
    
    $ rake b
    running task a
    running task b
    
    $ rake c
    running task a
    running task b
    running task c
    
    $ rake d
    running task a
    running task b
    running task c
    running task d
    
    $ rake e
    running task a
    running task b
    running task c
    

    这不正是您所需要的吗?我看不出问题出在哪里。

    【讨论】:

    • 问题是我的 rake 文件中止,因为在执行捆绑安装之前正在执行 require 'data_mapper'。
    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    相关资源
    最近更新 更多