如何单独为文件指定scalacOptions

时间:2016-03-05 08:14:50

标签: scala sbt

我想指定一个与整个项目不同的文件编译器选项。更具体地说,我需要进行一些调试,以确定宏在该特定文件中失败的原因。如果我全局更改选项,那么整个项目将被重新编译(并生成调试),我想避免这种情况。

我该如何用sbt做到这一点?

2 个答案:

答案 0 :(得分:3)

不可能提供仅适用于编译单元的某些文件的特殊编译参数。

宏很难调试。现在可能的解决方案是:

  • Debug the code
  • 在宏的代码println
  • sbt clean compile,您应该在控制台中看到您的打印件(它也适用于Idea)。
祝你好运

答案 1 :(得分:2)

使用SBT的增量编译功能,您可以采用以下解决方法:

  1. 为整个项目启用此编译器选项
  2. 编译整个项目(你现在可以得到很多你可以忽略的输出)
  3. 从控制台执行touch <file with macro>.scala,或仅在该文件中执行其他修改。
  4. 再次编译。
  5. 现在只会重新编译一个感兴趣的单个文件(以及可能依赖它的文件),并且调试输出会少得多。

    以上暗示您的代码已成功编译。如果它没有在首先成功编译时需要将其置于状态(例如,通过删除一些未通过您感兴趣的文件中的编译的代码),然后从上面转到步骤3