gpt4 book ai didi

scala - 使用 Apache Buildr 编译 Scala 2.8.x 代码

转载 作者:行者123 更新时间:2023-12-04 12:15:00 24 4
gpt4 key购买 nike

我一直在努力让 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 时,我得到以下输出:

(in C:/Users/Travis/eclipse_ws/HelloWorld, development)
2.7.5
Building HelloWorld
Compiling HelloWorld into C:/Users/Travis/eclipse_ws/HelloWorld/target/classes
Buildr aborted!
←[31mScala compiler crashed:
#←[0m



第一个问题是 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'

那么有什么想法吗?

这是我的系统信息的快速列表:
赢 7 64 位
为构建器在本地设置 JDK 6 32 位,但系统范围内为 JDK 6 64 位
ruby 1.8.6 32 位
生成器 1.3.5 32 位
斯卡拉 2.8.0.Beta1-RC6

我正在考虑做的另一件事是重新安装我的 32 位 JDK 并将其从名称中包含 (x86) 的目录中取出。我发现 Scala bat 文件有问题,尽管我不确定这是否与我当前的问题有关。

提前致谢!

最佳答案

弄清楚了。愚蠢的问题。在 Buildr 中(或者更一般地在 Ruby 中?),require 方法调用必须位于文件的顶部(或至少不在 define 块中)。

需要 'builder/scala'

因此,NoClassDefFoundError 和 puts Scala.version 显示的错误版本都被纠正了。以下是我的脚本应该是什么样子:

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

顺便说一句:一旦你弄清楚你在做什么,Buildr 似乎很甜蜜(快速、简洁、约定俗成的配置等):-)

关于scala - 使用 Apache Buildr 编译 Scala 2.8.x 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1978183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com