如何通过Ant更新Cuke4Duke JRuby gems

时间:2011-09-13 00:03:58

标签: cucumber jruby

我有一个使用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存储库。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法,但这并不是我所希望的,但它确实有用。幸运的是,我几个月前在JRuby 1.5.5的实际RVM Gemset中安装了这些宝石。我去了那个宝石并重建了所有的宝石。我将gem目录复制到temp lcoation,然后将每个gemspec文件复制到相应的目录并在每个目录中运行gem build xxxxx.gemspec。这创建了新的gem文件,我可以从普通的网络服务器上提供。

有可能从较新的安装中获取宝石并使用较旧的安装进行重建,我自己没有尝试过,但它可能适合您。