我有一个使用Cucumber for BDD的Java项目。今天早上整个事情都崩溃了,我再也无法安装宝石了,我得到了可怕的“未定义的类/模块YAML :: Syck :: DefaultKey”错误。我知道我需要更新正在使用的Rubygem版本,但我无法做到这一点。
我搜索了网络和StackOverflow,但没有发现任何适合我情况的内容。我在整个过程中使用ant。它下载了JRuby jar(我试过1.6.1,1.6.3和1.6.4)。
当我尝试使用以下命令更新rubygem时:
java -jar ./lib/org.jruby/jruby-complete-1.6.1.jar -S gem update --system
...我收到错误:
undefined method `version' for nil:NilClass.
我先尝试安装黄瓜,但收到同样的错误信息。
任何人对如何实现这一目标都有任何想法?我会考虑切换到cucumber-jvm,但它还没有发布到Maven存储库。
答案 0 :(得分:0)
我找到了解决问题的方法,但这并不是我所希望的,但它确实有用。幸运的是,我几个月前在JRuby 1.5.5的实际RVM Gemset中安装了这些宝石。我去了那个宝石并重建了所有的宝石。我将gem目录复制到temp lcoation,然后将每个gemspec文件复制到相应的目录并在每个目录中运行gem build xxxxx.gemspec
。这创建了新的gem文件,我可以从普通的网络服务器上提供。
有可能从较新的安装中获取宝石并使用较旧的安装进行重建,我自己没有尝试过,但它可能适合您。