【问题标题】:What can be done about "Compiler synthesis of Manifest and OptManifest is deprecated"关于“不推荐使用 Manifest 和 OptManifest 的编译器综合”可以做些什么
【发布时间】:2022-01-05 15:53:50
【问题描述】:

json4s 版本 4.0.3

scala 版本 3.1.0

jdk 版本 1.8.0_181

其他人都会收到这样的警告吗?有没有办法抑制或解决它们?

[warn] -- Deprecation Warning: ...\serialization\json\JSONSerializer.scala:76:51
[warn] 76 |    val graphs = (json \ "graphs").extract[JObject].obj.map { case (key, json) =>
[warn]    |                                                   ^
[warn]    |Compiler synthesis of Manifest and OptManifest is deprecated, instead
[warn]    |replace with the type `scala.reflect.ClassTag[org.json4s.JObject]`.
[warn]    |Alternatively, consider using the new metaprogramming features of Scala 3,
[warn]    |see https://docs.scala-lang.org/scala3/reference/metaprogramming.html

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: json4s


【解决方案1】:

弃用是库开发的一部分,警告是为相关方使用旧版本或进行相应调整。

对于 Scala,一年前,Scala 2.13.2 引入了一个编译器标志-Wconf,用于配置错误/警告级别以及许多要使用的代码内注释。详情请访问configuring-and-suppressing-warnings

在您的情况下,您可以简单地使用-Wconf:cat=deprecation:ssss 表示silent-summary),您将在流程结束时仅获得弃用警告的总数。

【讨论】:

  • 谢谢。如您引用的页面上所述,我一直在使用 :ws 作为警告摘要,但它对 Scala 3 无效。不幸的是,您建议的 :ss 也不是。 [警告] 无法解析 -Wconf 配置:cat=deprecation:ss [警告] 未知操作:ss
  • @KeithAlcock 我想到的是“除了总结之外不要显示任何内容”,并且似乎不会那样工作。您是否尝试过使用单个i 来忽略它们或s 标志来使这些消息静音?我认为您不会看到任何弃用消息,因此出于安全考虑,请记住这一点。
  • @KeithAlcock,好吧,我还没有准备好看到许多语言/框架在 2021 年发生了重大变化,并且兼容性问题四处蔓延。我检查了他们的compiler migration compatibility 帖子,他们还没有实现许多标志,不清楚是否会。如果您处于试错阶段,请查看相同的迁移指南或恢复到 2.x 版本
猜你喜欢
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 2022-08-10
  • 1970-01-01
  • 2015-06-29
相关资源
最近更新 更多