在 Maven 构建中,如何配置 Nullaway 以排除测试类?



在Maven构建中,如何配置Nullaway以排除测试类?现在,它正在触发专门检查 NullPointerExceptions 是否在正确的位置抛出的代码。

要排除的代码位于习惯的 src/test/java 目录中,但与模型代码位于相同的包中。

您可以从容易出错的检查(包括 Nullaway(中排除测试源路径,如下所示:

<compilerArgs>
<arg>-Xep:NullAway:ERROR</arg>
<arg>-XepOpt:NullAway:AnnotatedPackages=[...]</arg>
<arg>-XepExcludedPaths:.*/src/test/java/.*</arg>
</compilerArgs>

NullAway是一个容易出错的插件。容易出错在其自己的编译器(Maven编译器IDjavac-with-errorprone(的帮助下工作。我看到两种方法可以避免对测试类应用容易出错/空移:

  1. 如果所有相关类都包含@Test注释,则可以使用NullAway Maven插件的-XepOpt:NullAway:ExcludedClassAnnotations=depends.on.junit.version.Test选项。

  2. 尝试通过在目标testCompile的 maven-compiler-plugin 配置中提供标准编译器 ID (<compilerId>javac</compilerId>( 来禁用标准编译器在编译测试类时使用标准编译器来禁用容易出错。 有关如何为测试编译提供配置的示例,请参阅此处接受的答案。

最新更新