使用bundle运行导入的rake任务

时间:2014-11-21 14:55:42

标签: ruby-on-rails ruby

我正在尝试导入并运行 rake 任务,我将其放入 Gemfile

我运行了bundle install,它找到了包含我的rake任务的已安装 gem 。但是,当我运行bundle exec rake <namespace>:<task>时,那么我得到的是输出而不是成功:

Don't know how to build task 'forum2discourse:import_punbb'
/usr/local/rvm/gems/ruby-2.0.0-p0-turbo/bin/ruby_noexec_wrapper:14:in `eval'
/usr/local/rvm/gems/ruby-2.0.0-p0-turbo/bin/ruby_noexec_wrapper:14:in `<main>'
(See full trace by running task with --trace)

看起来未找到任务。我该如何指示bundle install以便它找到任务

2 个答案:

答案 0 :(得分:0)

根据rake task import manual(由@Daiku提供)。在 Rakefile 中,您可以枚举项目中所需的所有gem,然后尝试导入在这些gem中导出的所有rake任务(如果有),如下所示:

Gem::Specification.all.each do |spec|
   Dir.glob('**/*.rake').each {|file| load file }
end

尝试:

$ rake -T

答案 1 :(得分:0)

我尝试安装的 Gem 尚未发布,因此添加

gem 'forum2discourse'

Gemfile是不够的。我试图通过检查仓库来解决这个问题,然后在全球范围内安装Gem?与sudo bundle install <gem>bundle install然后停止抱怨没有所需的宝石,但它不会暴露宝石中的任务。但是,在gem定义中拥有指向github repo的链接可以解决问题:

gem 'forum2discourse', github: 'initforthe/forum2discourse'

Ruby是magick: - )