Ruby on rails jruby上的Cucumber rails使用bundler将gem安装到我的应用程序根目录中
刚刚用OSX上的jruby-1.4.0安装了cucumber 0.7.2和cucumber rails 0.3.1。当我运行bundle安装时,它会在我的主应用程序中放置一个cucumber rails目录,其中包含所有gem代码/依赖项 首先,这绝对不是我想要的,我不知道为什么这只发生在cucumber rails上 第二,如果我删除这个文件夹,然后手动安装cucumber rails,当我运行Ruby on rails jruby上的Cucumber rails使用bundler将gem安装到我的应用程序根目录中,ruby-on-rails,jruby,cucumber,jrubyonrails,Ruby On Rails,Jruby,Cucumber,Jrubyonrails,刚刚用OSX上的jruby-1.4.0安装了cucumber 0.7.2和cucumber rails 0.3.1。当我运行bundle安装时,它会在我的主应用程序中放置一个cucumber rails目录,其中包含所有gem代码/依赖项 首先,这绝对不是我想要的,我不知道为什么这只发生在cucumber rails上 第二,如果我删除这个文件夹,然后手动安装cucumber rails,当我运行script/generate feature blah /Users/bradrobertson/
script/generate feature blah
/Users/bradrobertson/.rvm/rubies/jruby-1.4.0/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:344:in `refresh!': source index not created from disk (RuntimeError)
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:34:in `refresh!'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:29:in `initialize'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `new'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:298:in `add_gem_load_paths'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:132:in `process'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:13
from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:1:in `require'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:1
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:3:in `require'
from script/generate:3
rake aborted!
source index not created from disk
类似地运行rake cumber
/Users/bradrobertson/.rvm/rubies/jruby-1.4.0/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:344:in `refresh!': source index not created from disk (RuntimeError)
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:34:in `refresh!'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:29:in `initialize'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `new'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:298:in `add_gem_load_paths'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:132:in `process'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:13
from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:1:in `require'
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:1
from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:3:in `require'
from script/generate:3
rake aborted!
source index not created from disk
所以有些东西显然不起作用。如果我将cucumber rails目录添加回,那么我的rake cucumber
实际上会运行
有人能告诉我为什么需要在我的rails应用程序中安装gem吗?我以前从未见过这种情况
设置jruby-1.4.0
黄瓜-0.7.2
Cumber rails 0.3.1
捆扎机0.9.23
webrat 0.7.1 编辑 除此之外,我觉得我已经厌倦了让它工作,所以我从Gemfile中删除了所有cucumber/cucumber rails Dep,并重新运行
bundle安装
。它仍然会创建cucumber rails目录,而且,除非该目录存在,否则我不能运行任何东西(rake等)。否则,我会得到源索引,而不是从磁盘创建的消息
EDIT2
我刚刚注意到我的Rails.root/.bundle/config
有bundle\u路径:cumber-Rails
。有人知道为什么会出现这种情况吗?我能够从零开始使用以下gems运行一个应用程序:
$ jruby -S gem list
*** LOCAL GEMS ***
actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activerecord-jdbc-adapter (0.9.6)
activeresource (2.3.5)
activesupport (2.3.5)
builder (2.1.2)
bundler (0.9.25)
cucumber (0.7.2)
cucumber-rails (0.3.1)
database_cleaner (0.5.2)
diff-lcs (1.1.2)
gherkin (1.0.24)
jdbc-sqlite3 (3.6.3.054)
jruby-openssl (0.7)
json_pure (1.4.3)
nokogiri (1.4.1)
rack (1.0.1)
rack-test (0.5.3)
rails (2.3.5)
rake (0.8.7)
term-ansicolor (1.0.5)
trollop (1.16.2)
webrat (0.7.1)
我必须升级到Bundler 0.9.25,并按照此处的说明将Bundler与Rails 2一起使用:
下面是我的Gemfile的外观:
source :gemcutter
gem "rails", "~> 2.3.5"
gem 'activerecord-jdbc-adapter', :require => false
gem 'jdbc-sqlite3', :require => false
group :development do
end
group :test do
gem 'cucumber-rails'
gem 'webrat'
gem 'database_cleaner'
end
这与您使用bundler安装东西的方式有关
您可能做了如下操作:
捆绑安装黄瓜轨道
如果您这样做,绑定器将假定您想要出售您的绑定
在项目内的此目录中
您的.bundle/config
应该只包含:
捆绑\u禁用\u共享\u宝石:“1”
删除此文件夹实际上是在删除包
只需如上所述进行更改,然后运行:
bundle安装。嘿,对不起,我没有时间验证这一点,我会等到我完全忘记这个问题后再开始,你完全正确,我前几天碰巧开始查看bundler源代码,并意识到这里发生了什么。谢谢你让我再次注意到这一点!