我有一个 Scala sbt 项目,我正在其中使用 sbt-tpolecat 插件:
// scalac options for the enlightened @see https://github.com/typelevel/sbt-tpolecat
addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.2")
当我使用
针对我的项目进行编译时sbt 干净编译
我收到这个奇怪的警告,显示为错误:
[info] compiling 41 Scala sources and 2 Java sources to /Users/user/Projects/Private/scala-projects/open-electrons/cpo-platform/ocpp-gateway-server/target/scala-2.13/classes ...
[error] bad option: '-no-link-warnings'
[error] (Compile / compileIncremental) Compilation failed
[error] Total time: 2 s, completed Dec 23, 2024, 11:37:46 AM
如何使用 sbt-tpolecat 插件抑制此错误?还有其他更好的方法吗?
编辑:我试图通过将其添加到我的 build.sbt 来抑制此问题:
Compile / doc / scalacOptions += "-no-link-warnings"
但这没有任何效果,构建继续失败。
您尝试的解决方案添加
-no-link-warnings
作为调用编译器时的选项。
我也不确定您是否触及了正确的范围,因为原始描述中的错误表明,当您运行
Compile / compileIncremental
时会发生这种情况(据我所知,sbt clean compile
不会自动调用编译在文档范围内 - 除非您自己设置这样做)。
您可能想尝试的是:
Compile / doc / scalacOptions -= "-no-link-warnings"
如果您想明确禁用多个选项,您可以这样做:
Compile / doc / scalacOptions --= Seq("-no-link-warnings")
评论中链接的票证有不同的方法,我将其留在这里供参考(但由于上面的方法有效,我可能会更喜欢这种方法,因为它可能更容易阅读和理解)。
Compile / doc / scalacOptions ~= (_.filterNot(
Set(
"-no-link-warnings",
)
))
最后一个警告,不幸的是,以这种方式设置和取消设置选项很容易受到评估顺序的影响。我相信这对您来说应该不是问题,因为 IIUC 该插件应该在您的任何设置生效之前应用,但我想将其留在这里,以防您实际上手动应用设置。
最后一点,您可能需要考虑自己为编译器设置选项。这是一些额外的行,但它完全在您的控制之下,并且如果出现任何问题,您可能更容易调试(