首页 > 解决方案 > Spring可为空的注释生成未知的枚举常量警告

问题描述

在我的应用程序中,每当我将@Nullable(从 导入org.springframework.lang.Nullable)添加到任何字段时,都会收到构建警告:

警告:java:未知枚举常量 javax.annotation.meta.When.MAYBE 原因:javax.annotation.meta.When 的类文件未找到

@NonNull和其他来自 spring 编译的空安全注释没有任何警告,因为它的实现没有 import import javax.annotation.meta.When

该应用程序运行良好,但警告只是烦人。我正在使用spring boot2.1.0和java版本1.8.0_191

标签: springspring-boot

解决方案


此警告是由于javax.annotation.meta.When枚举对您的项目运行时不可用(org.springframework.lang.Nullable引用此枚举但它不会自动提供)引起。您需要引入 JSR305 实现来修复此警告。

Google find bugs repo 包含一个应该解决问题的 JSR305 实现: https ://mvnrepository.com/artifact/com.google.code.findbugs/jsr305

由于您使用的是 gradle,请将依赖项添加到您的build.gradle脚本中:

...
dependencies {
    ...

     // https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305
    implementation 'com.google.code.findbugs:jsr305:3.0.2'

    ...
}
...

做一个干净的构建,错误应该消失


如果您不想使用该com.google.code.findbugs组的工件,您可以尝试此列表中的另一个: https ://mvnrepository.com/search?q=JSR305

参考:


推荐阅读