【问题标题】:While parsing annotations could not find MAYBE in enum <none>. Scala + Micrometer虽然解析注释在枚举 <none> 中找不到 MAYBE。斯卡拉 + 千分尺
【发布时间】:2018-06-15 18:33:46
【问题描述】:

在 Scala 项目中尝试使用千分尺时,我收到了以下警告:

[错误] 解析 /Users/vargasmontero/.ivy2/cache/io.micrometer/micrometer-core/jars/micrometer-core-1.0.4.jar(io/micrometer/core/lang/Nullable.类),在枚举中找不到 MAYBE。

它是在 1.0.0-rc.8 中引入的,但我在 github 上看不到发布。

  • Sbt 1.1.1
  • scala 2.12.5
  • 微米 1.0.4

【问题讨论】:

  • 您能否解释一下关于无法看到该版本的更多信息?另外,您的 Scala 代码看起来有什么错误?
  • 有问题的最小项目如下所示: 在构建文件中添加依赖项:"io.micrometer" % "micrometer-registry-datadog" % "1.0.4" 然后使用 Datadog Config 创建一个特征: trait MicrometerRegistryConfig { val config = new DatadogConfig() { override def apiKey(): String = "123" override def step(): Duration = Duration.ZERO override def get(key: String): String = null } }
  • 我有同样的警告,但我不知道它是否引起了问题

标签: scala scalac micrometer


【解决方案1】:

从 Scala 2.13.2 开始,configurable warnings 可用于抑制这种滋扰

ThisBuild / scalacOptions ++=
  Seq(
    //<other options omitted>

    // warnings
    "-Wconf:msg=While parsing annotations in:silent"
  )

【讨论】:

    【解决方案2】:

    我对 Scala 没有太多的专业知识,但稍微研究了一下,Scala 在用于返回类型时似乎并没有忽略缺少的元注释类(在参数上使用时似乎没问题),这与 Java 不同。 Micrometer 的@Nullable 实现与Spring 框架的实现相同。因此,如果您使用 Spring 框架中的StringUtils.quoteIfString(),您将看到相同的警告。

    这是一个警告,而不是错误,因此您可以简单地忽略它,或者如果它困扰您,您可以添加以下可选依赖项作为解决方法:

    libraryDependencies += "com.google.code.findbugs" % "jsr305" % "3.0.2" % Optional
    

    Scala 开发人员可能会给你更好的建议。

    FTR 这是从https://github.com/micrometer-metrics/micrometer/issues/1133#issuecomment-452434205 复制的。


    更新

    我错过了“错误”部分。您似乎有“-Xfatal-warnings”编译器选项。

    【讨论】:

    • 这不会抑制“解析注释时...”警告。
    猜你喜欢
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    相关资源
    最近更新 更多