【问题标题】:In a Maven build how do I configure Nullaway to exclude test classes?在 Maven 构建中,如何配置 Nullaway 以排除测试类?
【发布时间】:2018-05-08 13:08:10
【问题描述】:

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

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

【问题讨论】:

    标签: java maven nullaway


    【解决方案1】:

    您可以像这样从 Errorprone 检查(包括 Nullaway)中排除测试源路径:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-10-06
        • 2013-01-20
        • 2012-08-20
        • 1970-01-01
        • 2010-09-27
        • 2019-12-23
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多