利用Intellij IDEA 和mvnDebug调试注解处理器
目录
利用Intellij IDEA 和mvnDebug调试注解处理器
使用 maven-compiler-plugin 打包(springboot自带的打包在引用注解的时候有问题)
在另外一项目引用刚才打的jar包并使用注解(一定要在另外一个项目中运行注解才可以)
在使用注解的项目 打开刚才打包的源文件,在里面设置断点(一定是源文件不是反编译的文件)
编写注解处理器(如果已经编写完成请忽略此段)
@SupportedAnnotationTypes("sar.utls.anno.BeanToMap")
@SupportedSourceVersion(SourceVersion.RELEASE_8)
@AutoService(Processor.class)
public class BeanToMapProcess extends AbstractProcessor {
private Messager messager;
private Filer filer;
private Elements elements;
@Override
public synchronized void init(ProcessingEnvironment processingEnv) {
super.init(processingEnv);
messager = processingEnv.getMessager();
filer = processingEnv.getFiler();
elements = processingEnv.getElementUtils();
}
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
messager.printMessage(Diagnostic.Kind.NOTE,"开始执行注解");
System.out.println("开始执行");
return false;
}
}
使用 maven-compiler-plugin 打包(springboot自带的打包在引用注解的时候有问题)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
在另外一项目引用刚才打的jar包并使用注解(一定要在另外一个项目中运行注解才可以)
在使用注解的项目 打开刚才打包的源文件,在里面设置断点(一定是源文件不是反编译的文件)
在使用注解项目中 确认是否打开注解处理器,没有打开即可
在使用注解项目中 执行maven命令
mvnDebug clean install
terminal中会输出