Error-Prone Plugin checks

来源:互联网 发布:linux vim怎样退出 编辑:程序博客网 时间:2024/05/22 09:38

插件检查

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
原创粉丝点击