4

hello-worldスタイルのアプリケーションで次のconfig/warble.rbを使用しています。

Warbler::Config.new do |config|
  config.dirs = %w(app config tmp gems views)
  config.includes = FileList["hello.rb"]
  config.gems = ["sinatra"]
  config.gem_dependencies = true
end

jruby -S warbleを実行すると、次のエラーメッセージが表示されます。

warble aborted!
uninitialized constant Warbler::Jar::Pathname
org/jruby/RubyModule.java:2526:in `const_missing'

誰かがそれを手伝ってくれる?アプリケーションは直接実行しても問題なく実行されるため、必要なすべてのgemがインストールされているように見えます。

環境:

  • JRuby 1.6.1(1.5.6と同じ)
  • シナトラ1.2.6
  • ウグイス1.3.0
  • Windows XP
  • Ubuntu 10.04.1
4

2 に答える 2

2

私はこれの回避策を見つけました。これはrubyとjrubyの両方で機能します。

config / warble.rb内でgemを指定する代わりに、Bundler gemをインストールし、アプリケーションのルートフォルダーに次のコンテンツを含むGemfileを作成しました。

source :rubygems
gem "sinatra"

config / warble.rbファイルから削除すると、このファイルの実際の内容は次のようになります。

Warbler::Config.new do |config|
  config.includes = FileList["hello.rb"]
end

要約する:

  • 宝石はGemfileに入ります
  • アプリケーションファイルはconfig/warble.rbファイルに入ります
于 2011-05-08T15:02:01.927 に答える
2

明らかに、この機能が jruby 1.6.1 および ruby​​ 1.8.7 で動作するのを妨げる明らかなバグがウグイスにあることが判明しました (テストしていないため、他のバージョンについてはわかりません)。

簡単な修正については、こちらをご覧ください。

https://github.com/padcom/warbler/commit/b4b24e17dee5bb98525203c82519a8901874ef81

于 2011-05-09T07:12:48.443 に答える