sbt 编译失败,选项错误:'-Ywarn-macros:after'
sbt compile fails with bad option: '-Ywarn-macros:after'
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")
我在 运行 sbt clean compile
之后得到 [error] bad option: '-Ywarn-macros:none'
如果没有 -Ywarn-macros:after
,未使用的导入警告会在使用 Circe 宏的文件中引发虚假警告,例如:import io.circe.{ Decoder, Encoder }
。
-Ywarn-macros
直到 Scala 2.12 才被添加,所以这个错误是意料之中的。
你能升级到 Scala 2.12 吗?如果你卡在 2.11 上,也许你需要在没有 -Ywarn-unused-import
的情况下生活。 (由于 Som Snytt 的不懈努力,随着 2.12.x 系列的进步,未使用的警告总体上有了很大改善。)
您可以将使用 Circe 的代码限制在一个子项目中,然后仅在该子项目中禁用未使用的警告,以便在您的代码库的其余部分中启用它们。
另一种可能性是尝试 https://github.com/ghik/silencer。
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")
我在 运行 sbt clean compile
[error] bad option: '-Ywarn-macros:none'
如果没有 -Ywarn-macros:after
,未使用的导入警告会在使用 Circe 宏的文件中引发虚假警告,例如:import io.circe.{ Decoder, Encoder }
。
-Ywarn-macros
直到 Scala 2.12 才被添加,所以这个错误是意料之中的。
你能升级到 Scala 2.12 吗?如果你卡在 2.11 上,也许你需要在没有 -Ywarn-unused-import
的情况下生活。 (由于 Som Snytt 的不懈努力,随着 2.12.x 系列的进步,未使用的警告总体上有了很大改善。)
您可以将使用 Circe 的代码限制在一个子项目中,然后仅在该子项目中禁用未使用的警告,以便在您的代码库的其余部分中启用它们。
另一种可能性是尝试 https://github.com/ghik/silencer。