2011-09-13 75 views
0

我有一個使用Cucumber for BDD的Java項目。今天早上整個事件都發生了崩潰,我不能再安裝寶石,我得到了可怕的「未定義的類/模塊YAML :: Syck :: DefaultKey」錯誤。我知道我需要更新正在使用的Rubygem的版本,但我無法做到這一點。如何通過Ant更新Cuke4Duke JRuby gems

我已經搜索了網站和StackOverflow,但還沒有找到任何適合我的情況。我在整個過程中使用螞蟻。它下載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

我找到了解決我的問題的方法,這並不是我所希望的,但是它的工作原理。幸運的是,我幾個月前在JRuby 1.5.5的實際RVM Gemset中安裝了這些gem。我去了那個寶石,重建了所有的寶石。我將gem目錄複製到臨時文件,然後將每個gemspec文件複製到相應的目錄,並在每個目錄中運行gem build xxxxx.gemspec。這創建了新的gem文件,我可以從普通的web服務器提供服務。

從較新的安裝中抓取寶石並重新安裝舊版本可能是可能的,我沒有嘗試過,但它可能適用於您。