Kompilieren Scala 2.8.x Code mit Apache Buildr

stimmen
7

Ich habe zu kämpfen Buildr zu bekommen, um meine Scala 2.8 Projekt zu kompilieren und ich hatte gehofft, jemand könnte dies bereits herausgefunden haben.

Zur Zeit habe ich den Standard Hello World-Anwendung mit einem Buildfile wie folgt aus:

ENV['JAVA_HOME'] = 'C:\Program Files (x86)\Java\jdk1.6.0_17'
ENV['SCALA_HOME'] = 'C:\scala-2.8.0.Beta1-RC6'

define HelloWorld do

  #artifact_ns['Buildr::Compiler::Scalac'].library = '2.8.0'
  require 'buildr/scala'

  puts Scala.version

end

Als ich buildr laufen bekomme ich die folgende Ausgabe:

(in C: / Users / Travis / eclipse_ws / Hello World, Entwicklung)
2.7.5
Gebäude Hello World
compilieren Hello World in C: / Users / Travis / eclipse_ws / Hello World / target / classes
Buildr abgebrochen!
← [31mScala Compiler abgestürzt:
# ← [0m

Das erste Problem ist die NoClassDefFoundError - es ist nicht die scala Compilers Hauptklasse zu finden. Das zweite Problem ist, dass Scala.version ist 2.7.5 ausdrucken. Das ist falsch, weil der SCALA_HOME Pfad auf eine Version 2.8 zeigt.

Schließlich zeigt mir die --trace Flagge mit, dass Buildr einen etwas richtig scalac Befehl erzeugt und wenn ich diesen Befehl manuell alles laufen kompiliert. Ich sage es etwas richtig ist nur, weil einige cp Einträge dupliziert werden. Sehen Sie im folgenden:

scalac -classpath C: /scala-2.8.0.Beta1-RC6/lib/scala-library.jar; C: /scala-2.8.0.Beta1-RC6/lib/scala-compiler.jar; C: / scala- 2.8.0.Beta1-RC6 / lib / scala-library.jar; C: /scala-2.8.0.Beta1-RC6/lib/scala-compiler.jar -sourcepath C: / Users / Travis / eclipse_ws / Hello World / src / main / scala -d C: / Users / Travis / eclipse_ws / Hello World / target / classes -verbose -g C: /Users/Travis/eclipse_ws/HelloWorld/src/main/scala/hw/HelloWorld.scala

Eine weitere Sache, habe ich versucht (aber errored aus Builder) einstellte die folgenden (die ich nicht daran gedacht, w / Gegenwart SCALA_HOME erforderlich war):

#artifact_ns['Buildr::Compiler::Scalac'].library = '2.8.0'

Also irgendwelche Ideen?

Hier ist eine kurze Liste meiner Systeminfo: Win 7 64-Bit-JDK 6 32 Bit gesetzt lokal für buildr aber JDK 6 64 Bit systemweite Rubin 1.8.6 32-Bit-Buildr 1.3.5 32-Bit-Scala 2.8.0.Beta1-RC6

Eine weitere Sache, ich denke zu tun ist meine 32-Bit-JDK Neuinstallation und es aus dem dem Verzeichnis mit der (x86) immer im Namen. Ich habe festgestellt, dass die Schrauben mit der Scala bittet-Dateien, obwohl ich nicht sicher bin, ob diese auf meine aktuellen Probleme relevant ist.

Danke im Voraus!

Veröffentlicht am 30/12/2009 um 01:59
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
3

Herausgefunden. Dumme Problem. In Buildr (oder vielleicht mehr generisch in Ruby?), Kommt der Methodenaufruf erforderlich muss am Anfang der Datei (oder zumindest nicht in dem Block definieren).

require 'buildr / scala'

So sowohl die NoClassDefFoundError und die falsche Version von Puts Scala.version angezeigt wurden durch diese korrigiert. Im Folgenden ist das, was mein Skript wie ausgesehen haben sollte:

require 'buildr/scala'

ENV['JAVA_HOME'] = 'C:\Program Files (x86)\Java\jdk1.6.0_17'
ENV['SCALA_HOME'] = 'C:\scala-2.8.0.Beta1-RC6'

define 'HelloWorld' do

  puts Scala.version

end

BTW: Buildr scheint ziemlich süß (schnell, prägnant, Konvention über Konfiguration, etc.) zu sein, wenn Sie herausfinden, was Sie tun :-)

Beantwortet am 31/12/2009 um 01:08
quelle vom benutzer

stimmen
1

Buildr hat 1.4 Unterstützung für Scala 2.8 und 1.4.2 wird 2.8 standardmäßig verwenden.

Beantwortet am 01/08/2010 um 10:38
quelle vom benutzer

stimmen
2

Mit der Version 1.4, zur Zeit können Sie tun

Buildr.settings.build['scala.version'] = "2.8.0"
require 'buildr/scala'

Und es wird scala 2.8 verwenden.

Beantwortet am 15/09/2010 um 22:12
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more