即使没有必要,FSC每次都会重新编译我的.scala文件 - 我可以编译它两次而不需要在任何尝试之间编辑任何内容,并重新编译它们! 例如,我有2个文件FSC每次都会重新编译
Hello.scala
class Hello{
print("hello")
}
而且Tokens.scala:
abstract class Token(val str: String, val start: Int, val end: Int)
{override def toString = getClass.getSimpleName + "(" + "[" + start + "-" + end + "]" + str + ")"}
class InputToken(str: String, start: Int, end: Int)
extends Token(str, start, end)
class ParsedToken(str: String, start: Int, end: Int, val invisible: Boolean)
extends Token(str, start, end)
当我问蚂蚁从头开始编制项目我看到以下的输出:
ant compile
init:
[mkdir] Created dir: D:\projects\Test\build\classes
[mkdir] Created dir: D:\projects\Test\build\test\classes
compile:
[fsc] Base directory is `D:\projects\Test`
[fsc] Compiling source files: somepackage\Hello.scala, somepackage\Tokens.scala to D:\projects\Test\build\classes
BUILD SUCCESSFUL
比我不编辑任何东西,并要求蚂蚁再次编译:
ant compile
init:
[mkdir] Created dir: D:\projects\Test\build\classes
[mkdir] Created dir: D:\projects\Test\build\test\classes
compile:
[fsc] Base directory is `D:\projects\Test`
[fsc] Compiling source files: somepackage\Tokens.scala to D:\projects\Test\build\classes
BUILD SUCCESSFUL
正如您所看到的,fsc在Hello.scala(不重新编译)的情况下很智能,在Tokens.scala的情况下不起作用。我建议这个问题与继承有某种关系,但仅此而已。
那又怎么了?
FSC将编译所有内容,除非您传递标志告诉它执行传递依赖性分析。你如何在Ant中配置Scala编译任务? – 2010-09-27 13:17:32