Rake构建 - 找不到Gemfile

时间:2014-06-28 14:09:09

标签: ruby rake rakefile

当我尝试使用rake build进行构建时,它说它无法找到Gemfile,即使文件夹中肯定有一个我正在执行它...当我看看它是如何执行的,有一个非常神秘而奇怪的cd /home/myuser/masterfolder ......我不知道它为什么会这样做!以下是我在rake build --trace中运行/home/myuser/masterfolder/slate时发生的情况,其中包含我的Gemfile文件夹:

** Invoke build (first_time)
** Execute build
cd /home/myuser/masterfolder
bundle exec middleman build --clean
Could not locate Gemfile
rake aborted!
Command failed with status (10): [bundle exec middleman build --clean...]
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/file_utils.rb:55:in `block in create_shell_runner'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/file_utils.rb:45:in `call'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/file_utils.rb:45:in `sh'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/file_utils_ext.rb:37:in `sh'
/var/lib/gems/1.9.1/gems/middleman-gh-pages-0.0.3/lib/middleman-gh-pages/tasks/gh-pages.rake:60:in `block (2 levels) in <top (required)>'
/usr/lib/ruby/1.9.1/fileutils.rb:125:in `chdir'
/usr/lib/ruby/1.9.1/fileutils.rb:125:in `cd'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/file_utils_ext.rb:37:in `cd'
/var/lib/gems/1.9.1/gems/middleman-gh-pages-0.0.3/lib/middleman-gh-pages/tasks/gh-pages.rake:59:in `block in <top (required)>'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/task.rb:240:in `call'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/task.rb:240:in `block in execute'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/task.rb:235:in `each'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/task.rb:235:in `execute'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/usr/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/task.rb:172:in `invoke_with_call_chain'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/task.rb:165:in `invoke'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:150:in `invoke_task'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:106:in `each'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:106:in `block in top_level'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:115:in `run_with_threads'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:100:in `top_level'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:78:in `block in run'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:176:in `standard_exception_handling'
/var/lib/gems/1.9.1/gems/rake-10.3.1/lib/rake/application.rb:75:in `run'
/var/lib/gems/1.9.1/gems/rake-10.3.1/bin/rake:33:in `<top (required)>'
/usr/local/bin/rake:23:in `load'
/usr/local/bin/rake:23:in `<main>'
Tasks: TOP => build
如果问题不是由于cd,我会感到震惊,但我不知道为什么它会上升到一个目录而无法找到如何预防从那以后。

1 个答案:

答案 0 :(得分:0)

因为你的中间人宝石。它以不同方式处理Gemfile。来自docs

  

<强>的Gemfile

     

Middleman将尊重Bundler Gemfile以指定和   控制你的gem依赖。在创建新项目时   Middleman将为您生成Gemfile,并指定相同的Gemfile   您正在使用的Middleman版本。这将锁定Middleman   特定版本系列(例如3.0.x系列)。你也可以   使用你的Gemfile从GitHub使用最新版的Middleman   使用:git选项。您在其中使用的所有插件和额外库   项目应该列在你的Gemfile中,而Middleman会   它会在启动时自动要求所有这些。

我没有使用过那个gem,但根据文档,您可能需要这样做来构建,而不是rake build

bundle exec middleman build