【问题标题】:Excluding NullnessChecker annotation processor for generated code为生成的代码排除 NullnessChecker 注释处理器
【发布时间】:2020-09-13 04:28:24
【问题描述】:

我正在将 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>

【问题讨论】:

    标签: maven-compiler-plugin checker-framework


    【解决方案1】:

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

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

    【讨论】:

    • -skipDefs 是我想要的。谢谢!
    猜你喜欢
    • 2021-03-25
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多