Ruby on rails Rake中止任务未按顺序执行

Ruby on rails Rake中止任务未按顺序执行,ruby-on-rails,ruby,sinatra,rake,rake-task,Ruby On Rails,Ruby,Sinatra,Rake,Rake Task,我有一个Rakefile,我用它为应用程序配置环境,我遇到了一个问题,Rake任务正在中止,因为特定的Gem安装在一个preciding任务中 请参阅下面的Rakefile,Rake在:configure\u db任务中的require'data\u mapper'行中止,:configure\u db由:build调用,它前面的任务是:bower\u install和:bundle\u install ENV['JASMINE_CONFIG_PATH'] = 'spec/js/support/

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

请参阅下面的Rakefile,Rake在
:configure\u db
任务中的
require'data\u mapper'
行中止,
:configure\u db
:build
调用,它前面的任务是
:bower\u install
:bundle\u 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

此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\u mapper'。