在javax.annotation中找不到@ Nullable。*


Answers:


145

您需要包括一个存在该类的罐子。您可以在这里找到它

如果使用Maven,则可以添加以下依赖项声明:

<dependency>
  <groupId>com.google.code.findbugs</groupId>
  <artifactId>jsr305</artifactId>
  <version>3.0.2</version>
</dependency>

对于Gradle:

dependencies {
  testImplementation 'com.google.code.findbugs:jsr305:3.0.2'
}

74
为什么Google(尤其是它的findbugs工件)提供属于该javax程序包的类型?是否没有带有javax提供此类型的-prefixed groupId 的工件?
安德鲁·斯旺2016年

9
@AndrewSwan似乎作者选择了groupId,com.google.code.findbugs因为它被托管在Google的代码托管解决方案中
matt b'1

2
Google-findbugs是jsr305的参考实现,因此我可以允许它们使用javax-packageName。
icyerasor

33

神器已经从移动net.sourceforge.findbugs

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.0</version>
</dependency>

26

如果您使用的是Gradle,则可以包含以下依赖项:

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.0'
}

1
我尝试了,但出现错误:在org.gradle.api.internal.artifacts上找不到参数[{group = com.google.code.findbugs,name = jsr305,version = 3.0.0}]的方法compile()。 dsl.dependencies.DefaultDependencyHandler_Decorated@7b35fdf2。
kamal 2016年

在上面的示例中,@ kamal通常假定您已应用'java'已经创建了compile配置的(或其他)插件。
mkobit

无法导入javax.annotation.Nullable; 我的类路径中有jsr250-api-1.0.jar。我什至尝试更新maven pom <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>3.0.0</version> </dependency> Eclipse给出了错误:缺少工件com.google.code.findbugs:jsr305:jar:3.0.0 Failure to transfer com.google.code.findbugs:jsr305:jar:3.0.0
Sam-T

终于成功了jsr305-3.0.1.jar-一些eclipse cp问题。是的,它最终在外部罐子导入日食之后编译
Sam-T

由于运行时不需要jar,因此请使用,compileOnly group...而不是compile group...
Renato

7

如果有人在尝试编译Android项目时遇到此问题,则中提供了另一个Nullable实现android.support.annotation.Nullable。因此,请注意您在中引用了哪个包import


4

如果从外部构建在IntelliJ IDEA中创建的Maven项目时有人遇到此问题,我将使用以下依赖项代替答案:

<dependency>
  <groupId>org.jetbrains</groupId>
  <artifactId>annotations</artifactId>
  <version>15.0</version>
</dependency>

使用此选项将使项目可以在IntelliJ IDEA上构建,也可以使用Maven本身构建。

你可以在这里找到它。


2
提防org.jetbrains:annotations:15.0提供@org.jetbrains.annotations.Nullable@javax.annotation.Generated。如果您将某些代码生成器用作,则可能会出现问题openapi-generator-maven-plugin
danidemi

3

您可以通过在gradle.build中添加以下行来添加最新版本。

implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'

2

我正在使用带有注释的番石榴:

(区号)

compile 'com.google.guava:guava:23.4-jre'

1

对于Android项目,您可以通过如下更改项目/模块gradle文件(build.gradle)来解决此错误:

dependencies { implementation 'com.android.support:support-annotations:24.2.0' }

有关更多信息,请参阅此处

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.