Spring可为空的注释生成未知的枚举常量警告

时间:2018-11-15 19:01:39

标签: spring spring-boot

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

  

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

@NonNull和其他来自spring的null安全注释,因为其实现不会导入import javax.annotation.meta.When,因此在编译时不会发出任何警告。

应用程序运行正常,但是警告很烦人。我正在使用Spring Boot 2.1.0和Java版本1.8.0_191

2 个答案:

答案 0 :(得分:2)

此警告是由avax.annotation.meta.When枚举对您的项目运行时不可用引起的(org.springframework.lang.Nullable引用了该枚举,但它不会自动变为可用)。您需要引入JSR305实现来解决此警告。

Google查找错误存储库包含应解决该问题的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

参考:

答案 1 :(得分:1)

这也困扰着我。 只需在pom中尝试一下:

    <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>annotations</artifactId>
        <version>3.0.1</version>
    </dependency>

这对我有用。