我一直在努力讓Buildr編譯我的Scala 2.8項目,我希望有人可能已經知道了這一點。編譯Scala 2.8.x代碼與Apache Buildr
目前,我有像構建文件標準的HelloWorld應用程序如下:
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
當我運行buildr我得到以下的輸出:
(在C:/用戶/特拉維斯/ eclipse_ws/HelloWorld,開發)
2.7.5
構建HelloWorld
編譯HelloWorld到C:/ Users/Travis/eclipse_ws/HelloWorld/target/classes
Buildr中止!
←[31mScala編譯器崩潰:
#←[0米
的第一個問題是NoClassDefFoundError的 - 它不能找到Scala編譯器的主類。第二個問題是Scala.version打印出2.7.5。這是不正確的,因爲SCALA_HOME路徑指向2.8版本。
最後,使用--trace標誌顯示Buildr正在生成一個正確的scalac命令,並且當我手動運行該命令時,所有編譯都會生效。我說這只是因爲一些cp條目被複制纔有點正確。參閱以下內容:
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/HelloWorld/src/main/scala -d C:/ Users/Travis/eclipse_ws/HelloWorld/target/classes -verbose -g C:/ Users/Travis/eclipse_ws/HelloWorld/src/main/scala /hw/HelloWorld.scala
還有一件事我試圖(但出錯了製造商)的設置以下的(我認爲是不需要瓦特/ SCALA_HOME的存在):
#artifact_ns['Buildr::Compiler::Scalac'].library = '2.8.0'
那麼有什麼想法?
這裏是我的系統信息的快速列表: Win 7的64位 JDK 6的32位本地的buildr設置,但JDK 6的64位全系統 的Ruby 1.8.6 32位 Buildr 1.3.5 32位 Scala 2.8.0.Beta1-RC6
我想要做的另一件事是重新安裝我的32位JDK,並將其與(x86)名稱中的目錄取出。雖然我不確定這是否與當前問題相關,但我發現了Scala bat文件的螺絲。
在此先感謝!
我沒有看到設置Scala二進制文件(腳本,實際上)的路徑。 –
它被全局設置爲一個系統變量,它應該在腳本中可用......我將在我回到家用電腦時測試在腳本中將其設置爲本地。感謝您及時的回覆! –
即使我將以下行插入到我的構建文件中,問題仍然存在。 ENV ['PATH'] = ENV ['SCALA_HOME'] +'\ bin;' + ENV ['JAVA_HOME'] +'\ bin;' + ENV ['PATH'] –