使Scala编译器在第一次出错时停止

Kat*_*Kat 17 scala

我想scalac在第一个错误上停止构建.我一直在发现大量的情况,其中所有后续错误都是由第一个错误直接引起的,所以那些后续错误只是噪音,我想删除它.

有没有我可以传递scalac去做的选项?

如果重要的话,我正在开发一个Play Framework项目并通过Activator进行构建(使用~run自动重建更改).

Rég*_*les 17

在sbt中,通过maxErrors设置设置非常简单:

maxErrors := 1
Run Code Online (Sandbox Code Playgroud)

如果要为当前会话临时设置它,只需执行以下操作:

set maxErrors := 1
Run Code Online (Sandbox Code Playgroud)

就在做之前 ~run

  • 这是事实,但它适用于OP的问题,因为他**使用sbt(通过*Activator*).不幸的是,似乎sbt实现了这个功能,纯粹是让它的记录器在达到`maxErrors`时忽略了`scalac`报告的错误.所以,如果您直接使用`scalac`,那么确实你运气不好(但在这种情况下,您可以使用'-XPrompt`,如他删除的答案中的ntalbs所建议的那样). (2认同)
  • scalac 2.12 有“-Xmaxerrs”和“-Xmaxwarns”。 (2认同)