使用如下build.sbt文件:

ThisBuild / organization := "com.company"
ThisBuild / version := "1.0.0-SNAPSHOT"
ThisBuild / scalaVersion := "2.11.12"

Global / concurrentRestrictions += Tags.limit(Tags.Test, 1)

Global / scalacOptions ++= Seq("-Ypartial-unification",
                               "-unchecked",
                               "-Xfatal-warnings",
                               "-Ywarn-dead-code",
                               "-Ywarn-inaccessible",
                               "-Ywarn-unused",
                               "-Ywarn-unused-import",
                               "-Ywarn-macros:after")


我运行[error] bad option: '-Ywarn-macros:none'后得到sbt clean compile

如果没有-Ywarn-macros:after,则未使用的导入警告会使用Circe宏在文件中引发虚假警告,例如:import io.circe.{ Decoder, Encoder }

最佳答案

在Scala 2.12之前未添加-Ywarn-macros,因此会出现此错误。

您可以升级到Scala 2.12吗?如果您坚持使用2.11,也许您将需要没有-Ywarn-unused-import生活。 (由于Som Snytt的不懈努力,总体上,未使用的警告随着2.12.x系列的发展而大大改善。)

您可能可以将“使用循环”的代码限制在一个子项目中,然后仅在该子项目中禁用未使用的警告,以便在其余代码库中将其保持启用状态。

另一种可能性是尝试https://github.com/ghik/silencer

10-04 18:51