草!搞了整整三天 两个问题跳来跳去的
javax.annotation.processing.Processor: Provider not found先是javax.annotation.processing.Processor: Provider not found
试了https://blog.csdn.net/zimou5581/article/details/98208143
结果maven编译一直疯狂报 找不到符号 问题,可是idea 内置build明明能通过!!!
后来终于试出来了,就是
但是不加就会找不到processor,加了之后其他外部编译期注解就不能用了
解决办法后来看了很多资料,才解决
本质上你可以先编译processor以及相关的源文件,再把jar包导入项目,然后再去使用这个包里的注解。
也可以像我这样,单独把processor和注解放在一个父项目下的子项目,为的就是与lombok、slf4j脱离任何关系,然后通过maven的跳过执行处理器设置。这个子项目的pom中配置插件如下
org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 UTF-8 none
然后再到另外的项目中去使用注解
后续问题改了上面的配置之后,不再编译报错了
但是发现注解不生效,也就是没有启动到processor
然后查看processor编译后的jar包发现META-INF/services里没有那个注册文件,也就是说谷歌的@Autoservice没有生效
在StackOverflow上发现
解决办法
将版本从1.0-rc2改至1.0-rc6
com.google.auto.service auto-service 1.0-rc6
再把上面解决办法里pom文件的
等于说,none加不加无所谓,processor所在项目一定要先编译打包成jar后,再到别的项目去用那个注解!!!



