【问题标题】:how to compile single file in sbt如何在 sbt 中编译单个文件
【发布时间】:2012-12-19 02:24:21
【问题描述】:

我正在做一些重构,使编译器暂时在几个文件中给出错误。我想与他们一一合作(从常见的依赖项开始)并且需要一些工具来检查修改是否正确。

sbt compile 很不方便,因为它给出了太多的错误,并且花费了很多时间来编译没有好处的东西。

我正在寻找一种使用 sbt 编译单个文件的方法或一种提取 sbt 端库定义以将它们传递给普通 scalac 编译器的方法

有一个类似的话题:How to compile just some files with sbt? 原来是源代码错误讨论,而不是 sbt 功能披露。

【问题讨论】:

  • 我也遇到过这个问题。提供的一个答案并没有使它特别方便,所以我将尝试制作一个类似于“testOnly”的“compileOnly”命令。如果可行,我会发布解决方案。

标签: scala sbt


【解决方案1】:

您可以将以下行添加到build.sbt

sources in Compile <<= (sources in Compile).map(_ filter(_.name == "Particular.scala"))

然后修复Particular.scala,然后编辑build.sbt并输入下一个源文件的名称。如果您保持 sbt 控制台打开,reload 将在您修改后重新读取 .sbt 文件。

【讨论】:

  • 如果 Particular.scala 依赖于我的项目中其他一些未修改且有效的代码,它会起作用吗?
  • 不,但我认为这就是你的重点——与其让 sbt 找出增量依赖关系,不如自己一步一步地遍历它们。如果你想要依赖,你真的应该让 sbt 继续使用~compile,即使你需要滚动到当前错误。当错误数量变得烦人时,我所做的就是将错误的方法体块注释掉并将??? 放在首位。它可以编译,满足返回类型,并且在以后很容易找到。
  • 对于更新版本的 sbt,必须将其更改为 sources in Compile ~= (_.filter(_name == "Particular.scala"))
【解决方案2】:

我只想在这里提一下,我遇到了 sbt-compile-quick-plugin (https://github.com/etsy/sbt-compile-quick-plugin)。它会按照它在锡上说的做,只需将addSbtPlugin("com.etsy" % "sbt-compile-quick-plugin" % "1.3.0") 添加到您的project/plugins.sbt,然后您就可以启动sbt 并运行compileQuick /path/to/your/file

【讨论】:

    猜你喜欢
    • 2020-01-13
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2019-06-07
    • 2011-06-25
    • 2013-05-30
    • 2011-09-15
    • 2012-09-04
    相关资源
    最近更新 更多