Buildr Ruby Fehler, Rake :: Filetask in String kann nicht konvertiert werden

StackOverflow https://stackoverflow.com/questions/4751518

  •  13-10-2019
  •  | 
  •  

Frage

Ich habe das folgende Buildr Build -Datei -Segment:

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 ist 1.4.4, installiert mit dem Linux -Installationsskript auf zwei Machnies.

  • Maschine 1: Debian 32bit, Ruby 1.8.7 (2008-08-11 PatchLevel 72) [I486-Linux
  • Maschine 2: Ubuntu 64bit, Ruby 1.8.7 (2010-01-10 PatchLevel 249) [x86_64-linux

Maschine 1 kompiliert alles Datei. Maschine 2 scheitert am MARK-D -Stelle mit

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'

Jetzt kann ich das sehen pbs Ist ein Filetask und keine Zeichenfolge .. Aber wie kommt es, dass eine Maschine sie akzeptiert, die andere nicht? Gibt es eine erzwungene Konvertierung in die String?

Einige Buildr -Spuren sind bei angebracht http://pastebin.com/nf4hiyx9 .

Vielen Dank.

War es hilfreich?

Lösung 2

Ich dachte mir, dass das Hinzufügen von. TO_S hilft und alles in Ordnung ist. Aber ich könnte eine Antwort schätzen, die genau die implizite Bekehrung verloren hat und warum sie gut ist (wenn ja).

/aus meinem früheren Kommentar/

Andere Tipps

Der Stacktrace auf Pastebin unterscheidet sich sehr von dem hier geklebten Stacktrace, von dem, was ich sehen kann.

Wo ist die Protoc -Methode definiert? Ist es Teil des Buildr Core?

Der Grund, warum es an einer Maschine fehlschlägt und nicht die andere, könnte die Version von Ruby sein, die Sie haben, da die Zeile, die fehlschlägt, "if File.EXIST? PATH" ist. Pfad soll es eine Zeichenfolge geben, wird aber wahrscheinlich in einem Fall in eine Zeichenfolge konvertiert, aber nicht in der anderen.

Die Gesamtfixe besteht darin, einen Anruf nach dem Aufrufen von Protoc (...), Protoc (...) hinzuzufügen. MAP (&: to_s).

Ich hoffe das hat geholfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top