Error-Prone Plugin checks

插件检查

Error Prone支持通过插件机制进行自定义检查。使用java.util.ServiceLoader从注解处理器路径动态加载插件检查。

建议使用AutoService指定服务描述符。

样例

插件检查的执行方式与内置检查完全相同,但@AutoService(BugChecker.class)注解除外:

@AutoService(BugChecker.class) // the service descriptor
@BugPattern(
  name = "MyCustomCheck",
  // ...
)
public class MyCustomCheck extends BugChecker implements MethodInvocationTreeMatcher {
  @Override
  public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) {
    // TODO:
  }
}

构建系统支持

插件检查允许与设置注解处理器类路径的任何构建系统一起使用

Bazel

Bazel允许使用java_plugin规则配置注解处理器:

java_plugin(
    name = "MyCustomCheckPlugin",
    srcs = ["MyCustomCheck.java"],
    deps = [
        "//third_party/java/auto_service",
        "@error_prone//jar",
        "@guava//jar",
    ],
)

有关完整的示例,请参阅:examples/plugin/bazel

Maven

从版本3.5开始,maven-compiler-plugin允许使用annotationProcessorPaths参数配置处理器路径。

有关完整的示例,请参阅:examples/plugin/maven

Gradle

Gradle还没有(内置)支持设置处理器路径,但是它的灵活性使得手动配置也很容易:

configurations {
  annotationProcessor
}

dependencies {
  annotationProcessor project(':custom-checks')
}

tasks.withType(JavaCompile) {
  options.compilerArgs += [ '-processorpath', configurations.annotationProcessor.asPath ]
}

存在提供这种可配置性的Gradle插件: net.ltgt.apt用于标准Java项目,android-apt
experimental new Android toolchain用于Android项目。

有关使用net.ltgt.apt插件的完整示例,请参阅:examples/plugin/gradle

 参考链接: plugin checks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值