2011-03-18 36 views
2

我刚刚开始使用Scala,并试图设置简单构建工具(SBT)。按照Cygwin的所有说明,我已经开始运行了,但遇到了一个奇怪的行为。类文件被编译成target\scala-2.8.1\classes而不是简单的target\classes。如果我使用不同版本的scala,那么目录名称会反映该版本。SBT进入错误的目录

为什么会出现这种情况?我知道我可以配置构建,但肯定这不是正常的行为?

+1

您错过的是,每个Scala版本生成的类与其他所有Scala版本不兼容,唯一例外的是Scala 2.8.0和2.8.1。 – 2011-03-18 18:06:24

回答

3

这是正常的行为。 sbt支持针对多个版本的scala构建,as described on the wiki

编辑 关于在您的评论的问题是:你可以通过重写outputpath方法做到这一点:

 
override def outputPath = "target" 

将代码编译为target/classes,而斯卡拉内部版本。 查看sbt wiki上的paths page以及github上的ProjectPaths源代码以查看包含所有可配置选项的列表可能也很有用。

+0

所以这是...一定是我还没有看到的原因。谢谢! – matt 2011-03-18 17:22:27

+0

假设它对某些东西有用,是否有构建该目录以及目标/类的方法? – matt 2011-03-18 17:27:23

+0

有,我编辑了我的答案 – 2011-03-18 17:54:50