首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle构建忽略Jetbrains注释

Gradle构建忽略Jetbrains注释
EN

Stack Overflow用户
提问于 2018-01-30 16:36:39
回答 5查看 3K关注 0票数 7

假设我们有以下测试代码:

代码语言:javascript
复制
import org.jetbrains.annotations.NotNull;
import org.junit.Test;

public class NullTest {

  @Test
  public void testNull() {
    doNothing(null);
  }

  private @NotNull String doNothing(@NotNull String value) {
    return value;
  }
}

当直接运行gradle test或IDEA将操作委托给gradle时,测试将通过。但如果它使用IDEA运行器(没有委托给gradle)运行,它将失败并出现IllegalArgumentException: Argument for @NotNull parameter 'value' must not be null异常。

问题是:如何通过使用gradle运行它的测试?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-02-08 18:08:59

我找到的最简单的解决方案是应用org.jetbrains.intellij插件。因为除了其他事情之外,这个插件“将编译任务打补丁到带有可空性断言的工具代码中”。

代码语言:javascript
复制
  apply plugin: 'org.jetbrains.intellij'

  intellij {
    instrumentCode = true
    downloadSources = false
  }
票数 6
EN

Stack Overflow用户

发布于 2019-05-02 23:03:16

尝试将以下内容添加到您的依赖项中。这对我很有效。

代码语言:javascript
复制
compile 'org.jetbrains:annotations:13.0'
票数 5
EN

Stack Overflow用户

发布于 2018-01-30 19:40:17

使用此代码-不可能,因为您使用的是org.jetbrains.annotation.*中的注释,这些注释仅在intellij idea测试运行程序中使用。对于gradle,注释@NotNull (或@Nullable)没有说明任何问题。Maven也看不到这个注解。我建议您使用Objects.requireNonNull(T )进行null检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48517104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档