Ruby on rails Rake中止任务未按顺序执行
我有一个Rakefile,我用它为应用程序配置环境,我遇到了一个问题,Rake任务正在中止,因为特定的Gem安装在一个preciding任务中 请参阅下面的Rakefile,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/
: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'。