为生成的代码排除 NullnessChecker 注释处理器

Excluding NullnessChecker annotation processor for generated code

我正在将检查器框架中的 Nullness Checker 集成到我们使用 Maven 构建的 Java 项目中。我为 maven-compiler-plugin 插件配置了注解处理器。一切正常,只是我不想通过生成的代码 运行。

排除对 target 目录或特定 java 包中的代码使用这些注释处理器的做法可能会有所帮助,但我不知道该怎么做.

我还试图找到 Nullness Checker 本身的配置以排除目录或 java 包。我又找不到任何东西。

这是我的插件配置:

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <annotationProcessorPaths>
      <path>
        <groupId>org.checkerframework</groupId>
        <artifactId>checker</artifactId>
        <version>3.4.0</version>
      </path>
    </annotationProcessorPaths>
    <annotationProcessors>
      <annotationProcessor>org.checkerframework.checker.nullness.NullnessChecker</annotationProcessor>
    </annotationProcessors>
  </configuration>
</plugin>

如果您想从 javac 调用中排除某些 运行 注释处理器的文件,这是一个关于 Maven 的问题,已经有了答案 here

如果您想在 运行 注释处理器时对所有文件 运行 javac,但又想抑制有关某些文件的所有警告,请使用 -skipDefs 命令行参数。使用 -skipDefs 会使 Nullness Checker 发出相同的警告,就好像它在某些文件上没有 运行 一样。