我刚刚开始使用Scala,并试图设置简单构建工具(SBT)。按照Cygwin的所有说明,我已经开始运行了,但遇到了一个奇怪的行为。类文件被编译成target\scala-2.8.1\classes
而不是简单的target\classes
。如果我使用不同版本的scala,那么目录名称会反映该版本。SBT进入错误的目录
为什么会出现这种情况?我知道我可以配置构建,但肯定这不是正常的行为?
我刚刚开始使用Scala,并试图设置简单构建工具(SBT)。按照Cygwin的所有说明,我已经开始运行了,但遇到了一个奇怪的行为。类文件被编译成target\scala-2.8.1\classes
而不是简单的target\classes
。如果我使用不同版本的scala,那么目录名称会反映该版本。SBT进入错误的目录
为什么会出现这种情况?我知道我可以配置构建,但肯定这不是正常的行为?
这是正常的行为。 sbt支持针对多个版本的scala构建,as described on the wiki。
编辑 关于在您的评论的问题是:你可以通过重写outputpath
方法做到这一点:
override def outputPath = "target"
将代码编译为target/classes
,而斯卡拉内部版本。 查看sbt wiki上的paths page以及github上的ProjectPaths源代码以查看包含所有可配置选项的列表可能也很有用。
您错过的是,每个Scala版本生成的类与其他所有Scala版本不兼容,唯一例外的是Scala 2.8.0和2.8.1。 – 2011-03-18 18:06:24