破坏SBT编译 - 错误还是功能?

时间:2016-11-23 12:58:47

标签: scala sbt incremental-compiler

使用SBT时遇到以下问题。如果我将此行添加到build.sbt:

unmanagedResourceDirectories in Compile <+= baseDirectory( _ / "src/main/scala" )

增量编译以非常棘手且不太好的方式中断。有关如何重现错误的完整示例,请访问:https://github.com/vn971/sbt-incremental-bug

它基本上是2个文件。 Implicits.scala:

object MyImplicits {
  implicit def stringToInt(str: String) = 1
}

和Usage.scala:

import MyImplicits._
object MyUsage {
  def a: Int = ""
}

现在,为了重现 incremental 编译错误,您必须对这些文件进行相应的更改:

  • 注释掉Usage.scala中的方法。保存文件,重新编译。
  • 取消注释,保存并重新编译。
  • 注释掉Implicits.scala中的方法。保存文件,重新编译。

由于MyImplicits.stringToInt无疑在Usage.scala中使用,因此不应编译。但通过渐进式编译确实如此。

思考?有问题吗?如果您需要更多详细信息,请查看我已链接到的简约项目。

0 个答案:

没有答案