gpt4 book ai didi

scala - SBT编译源文件而不考虑时间戳

转载 作者:行者123 更新时间:2023-12-04 17:51:02 25 4
gpt4 key购买 nike

我观察到每次发出“编译”任务时,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目录的提示,而自上次构建以来仍只能编译已修改的文件吗?

谢谢

最佳答案

那是因为您使用的是相对路径,就好像它是绝对路径一样。我很惊讶它甚至会产生结果,但是无论如何,您应该这样写:

unmanagedSourceDirectories in Compile <<= baseDirectory(base => List(base / "src"))

关于scala - SBT编译源文件而不考虑时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10611817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com