2014-01-23 60 views
0

不执行我有一个Rake文件中,我使用的为应用程序配置的环境中,我有在那里,因为一个特定的宝石安装在preciding任务的Rake任务正在中止的问题。耙中止任务,以

请参阅下面的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 

回答

0

这Rake文件等同于你在任务相关的条款:

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 

的不就是你需要什么?我看不出问题在哪里。

+0

问题是我的rake文件中止,因为在执行bundle安装之前需要'data_mapper'正在执行。 –