我观察到 SBT 每次发出“编译”任务时都会编译所有源文件,而不管自上次编译以来的时间戳。以下是我的 build.sbt 文件:
name := "HelloSbt"
scalaVersion := "2.8.2"
unmanagedSourceDirectories in Compile := List(file("src"))
以下是我的项目结构(忽略项目和目标目录):
./src
./src/Hello1.scala
./src/a
./src/a/Hello2.scala
./build.sbt
这两个源文件只是用于测试目的的空对象定义。
当我输入“sbt compile”时,我得到了以下信息:
[info] Compiling 2 Scala sources to...
我可以在目标目录中找到新编译的类文件。
在不修改任何源文件的情况下,一分钟后,再次输入“sbt compile”,我得到了相同的信息和类文件,除了类文件的时间戳是最新的。我期待第二次编译不会找到任何修改过的源文件,也不应该发生编译。
我在 Windows 7 和 Debian 中都进行了测试。在测试期间,我没有打开任何编辑器。有人可以提供一些关于如何设置自定义 src 目录的提示,同时仍然只能编译自上次构建以来修改过的文件?
谢谢