次の buildr buildfile セグメントがあります。
require "buildr/protobuf"
....
define "protobuf-stuff" do
pbs = protoc(
Dir[_("pbsrc/some/pkg/*.proto")], {
:include => [_("pbsrc")],
})
comp = compile.from(pbs).with(PROTOBUF_LIB) # MARK
package :jar
end
Buildr は 1.4.4 で、Linux インストール スクリプトを使用して 2 台のマシンにインストールされています。
- マシン 1: Debian 32 ビット、Ruby 1.8.7 (2008-08-11 パッチレベル 72) [i486-linux]
- マシン 2: Ubuntu 64 ビット、ruby 1.8.7 (2010-01-10 パッチレベル 249) [x86_64-linux]
マシン 1 はすべてのファイルをコンパイルします。マシン 2 はMARK
-ed の場所で失敗し、
Buildr aborted!
TypeError : can't convert Rake::FileTask into String
/usr/lib/ruby/gems/1.8/gems/buildr-1.4.4/lib/buildr/core/application.rb:414:in `raw_load_buildfile'
/usr/lib/ruby/gems/1.8/gems/buildr-1.4.4/lib/buildr/core/application.rb:218:in `load_buildfile'
/usr/lib/ruby/gems/1.8/gems/buildr-1.4.4/lib/buildr/core/application.rb:213:in `load_buildfile'
pbs
これで、文字列ではなく FileTask であることがわかります..しかし、なぜ一方のマシンはそれを受け入れ、もう一方のマシンは受け入れないのでしょうか? String への強制変換はありますか?
一部の buildr トレースがhttp://pastebin.com/nf4HiYx9に添付されています。
ありがとうございました。