微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Gradle – 在编译期间执行自定义注释处理器

我有一个自定义注释处理器(扩展AbstractProcessor),它根据注释向项目添加属性文件.我希望每次编译时都能运行它.该项目是一个使用gradle的java项目.

如何在编译期间运行注释处理器?我应该使用一些编译器插件吗?或者我应该编写一个简单的gradle任务,可以调用此注释处理器并使该任务成为编译任务的一部分? (我是gradle的初学者)

>在meta-inf / services中,添加了javax.annotation.processing.Processor的条目,指定了自定义注释处理器类.

解决方法:

我知道这个问题已经很老了但是因为它甚至得到了帮助而没有人回答它我想给未来的读者至少给出一点答案.

对于这种情况,可能有多种方式,具体取决于您的环境设置方式.

例如,您可以在build.gradle或所有需要的项目使用的其他.gradle文件中使用类似的内容

compileJava{
    options.fork = false 
    options.forkOptions.executable = 'javac'
    options.compilerArgs.addAll(['-classpath','path/to/your/compiled/processor.jar'])
}

当您使用依赖系统时,您可以使用:

dependencies {
  compileClasspath group: 'com.company', name: 'AnnotationProcessor', version: 'your revision' 
  //or this
  compileClasspath 'com.company.AnnotationProcessor:revision'
}

但请确保在此方法的src / main / resources / meta-inf / services中有.Processor文件.否则你必须添加compilerArg’-processoror’,’full.package.name.with.class.name’< - 这可能是错的,因为我从未尝试过这种方式.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐