我一直在努力让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'] –