Kompilere Scala 2.8.x kode med Apache Buildr

stemmer
7

Jeg har lenge forsøkt å få Buildr å kompilere min Scala 2,8 prosjekt, og jeg håpet noen kanskje har funnet ut dette allerede.

Foreløpig har jeg standard Helloworld søknad med en buildfile som følgende:

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

Når jeg kjører buildr får jeg følgende resultat:

(i C: / Users / Travis / eclipse_ws / Helloworld, utvikling)
2.7.5
Building Helloworld
Kompilere Helloworld i C: / Users / Travis / eclipse_ws / Helloworld / mål / klasser
Buildr avbrutt!
← [31mScala kompilatoren krasjet:
# ← [0m

Det første problemet er NoClassDefFoundError - det kan ikke finne scala kompilatoren hoved klasse. Det andre problemet er at Scala.version skriver ut 2.7.5. Dette er ikke riktig, fordi SCALA_HOME banen peker til en 2,8 frigivelse.

Til slutt, ved hjelp av --trace flagget viser meg at Buildr genererer en noe riktig scalac kommando og når jeg kjører den kommandoen manuelt alt kompilerer. Jeg sier at det er noe riktig bare fordi noen cp oppføringer er duplisert. Se følgende:

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: / brukere / Travis / eclipse_ws / Hello / src / main / scala -d C: / Users / Travis / eclipse_ws / Helloworld / target / klasser -verbose -g C: /Users/Travis/eclipse_ws/HelloWorld/src/main/scala/hw/HelloWorld.scala

En ting jeg prøvde (men errored ut byggherre) var å sette følgende (som jeg trodde var ikke påkrevd w / tilstedeværelse av SCALA_HOME):

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

Så noen ideer?

Her er en rask oversikt over systemet mitt info: Win 7 64 bit JDK 6 32 bit satt lokalt for buildr men JDK 6 64 bit system-wide Ruby 1.8.6 32 bit Buildr 1.3.5 32 bit Scala 2.8.0.Beta1-RC6

En ting jeg tenker på å gjøre er å installere min 32 bit JDK og få det ut katalogen med (x86) i navnet. Jeg har funnet ut at skruer med Scala bat filene selv om jeg ikke er sikker på om dette er relevant for min nåværende problemer.

Takk på forhånd!

Publisert på 30/12/2009 klokken 00:59
kilden bruker
På andre språk...                            


3 svar

stemmer
3

Fant det ut. Silly problem. I Buildr (eller mer generelt i Ruby?), Må kreve metodekallet kommer på toppen av filen (eller i det minste ikke på innsiden av definerer blokken).

krever 'buildr / scala'

Så både NoClassDefFoundError og feil versjon som vises av puts Scala.version ble korrigert av dette. Følgende er hva min manuset burde ha sett ut:

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 synes å være ganske søt (rask, konsis, konferansesenter i løpet config, etc.) når du finne hva du gjør :-)

Svarte 31/12/2009 kl. 00:08
kilden bruker

stemmer
1

Buildr 1.4 har støtte for Scala 2.8 og 1.4.2 vil bruke 2,8 som standard.

Svarte 01/08/2010 kl. 09:38
kilden bruker

stemmer
2

Med versjon 1.4, i øyeblikket kan du gjøre

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

Og det vil bruke scala 2.8.

Svarte 15/09/2010 kl. 21:12
kilden bruker

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