如何通过sbt-tpolecat插件解决Scala 2.13的'-no-link-warnings'编译错误
解决sbt-tpolecat插件导致的
-no-link-warnings编译错误 问题根源
-no-link-warnings是Scaladoc专属参数,仅用于生成文档阶段,不能在编译(compile)阶段使用。你使用的sbt-tpolecat 0.5.2版本存在bug,错误地将该参数注入到了编译阶段的scalacOptions中,导致编译失败。
解决方案
方案1:直接移除编译阶段的错误参数
在build.sbt中添加以下配置,从编译选项里剔除-no-link-warnings:
Compile / scalacOptions -= "-no-link-warnings"
这个操作不会影响Scaladoc生成时的参数配置,仅解决编译阶段的错误。
方案2:升级sbt-tpolecat插件到修复版本
该bug在后续版本中已被修复,建议将插件版本升级到最新稳定版(如0.5.3及以上)。修改project/plugins.sbt中的插件版本:
addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.3")
升级后插件会自动将-no-link-warnings仅应用到文档生成阶段,无需额外配置。
方案3:全局过滤tpolecat的选项(可选)
如果暂时无法升级插件,可通过tpolecat的内置设置全局过滤掉错误选项,再单独为文档阶段添加:
// 全局移除错误选项 tpolecatScalacOptions := tpolecatScalacOptions.value.filterNot(_ == "-no-link-warnings") // 仅在文档生成阶段添加该参数 Compile / doc / scalacOptions += "-no-link-warnings"
补充说明
你之前尝试添加Compile / doc / scalacOptions += "-no-link-warnings"是正确的文档阶段配置,但问题核心是编译阶段被错误注入了该参数,因此需要针对编译阶段的选项进行调整。
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

