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
Than Я ничего не редактировал, и снова проконсультируйся с коммиком:
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 будет скомпилировать все, кроме случаев, когда вы передадите флажки, говорящие ему, чтобы сделать транзитивный анализ зависимостей. Как вы настроили задачу компиляции Scala в Ant? –