我觀察到SBT每次發出「編譯」任務時都會編譯所有源文件,而不考慮自上次編譯以來的時間戳。以下是我的build.sbt文件: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編譯」,我得到了以下信息:
[info] Compiling 2 Scala sources to...
,我可以找到目標目錄中新編譯的類文件。
沒有修改任何源文件,一分鐘後再次輸入「sbt compile」我得到了相同的信息和類文件,除了類文件的時間戳是最新的。我期待第二次編譯不會找到任何修改的源文件,並且不應該發生編譯。
我在Windows 7和Debian都做過測試。在測試期間,我沒有打開任何編輯器。有人可以提供一些關於如何設置自定義的src目錄的提示,但仍然只能編譯自上次構建以來修改的文件?
感謝
不是在答案中,但我會打開一個問題。我認爲至少有一個警告是必要的。 –