即使沒有必要,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