Buildr で Scala 2.8 プロジェクトをコンパイルするのに苦労しており、誰かがすでにこれを理解していることを期待していました。
現在、次のようなビルドファイルを含む標準の 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:/Users/Travis/eclipse_ws/HelloWorld、開発中)
2.7.5 HelloWorld の
構築 HelloWorld
を C:/Users/Travis/eclipse_ws/HelloWorld/target/classes に
コンパイル中
←[31mScala コンパイラがクラッシュしました:
#←[0m
最初の問題は NoClassDefFoundError です。これは scala コンパイラのメイン クラスを見つけることができません。2 つ目の問題は、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 -ソースパス 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
私が試したもう1つのこと(ただし、ビルダーでエラーが発生しました)は、次の設定でした(これは、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
私が考えているもう 1 つのことは、32 ビット JDK を再インストールし、名前に (x86) を含むディレクトリから取得することです。これが現在の問題に関連しているかどうかはわかりませんが、Scala のバット ファイルに問題があることがわかりました。
前もって感謝します!