编译期注解处理器 断点 Intellij IDEA mavn

本文详细介绍了如何使用IntelliJ IDEA和mvnDebug插件进行注解处理器的调试过程,包括编写注解处理器、使用maven-compiler-plugin打包、在另一项目引用并设置断点等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用Intellij IDEA 和mvnDebug调试注解处理器

目录

利用Intellij IDEA 和mvnDebug调试注解处理器

编写注解处理器(如果已经编写完成请忽略此段)

使用 maven-compiler-plugin 打包(springboot自带的打包在引用注解的时候有问题)

在另外一项目引用刚才打的jar包并使用注解(一定要在另外一个项目中运行注解才可以)

在使用注解的项目 打开刚才打包的源文件,在里面设置断点(一定是源文件不是反编译的文件)

在使用注解项目中 确认是否打开注解处理器,没有打开即可

在使用注解项目中 执行maven命令

​在Intellij IDEA中设置远程执行

​以debug的形式执行即可进入断点


编写注解处理器(如果已经编写完成请忽略此段)

@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中会输出

在Intellij IDEA中设置远程执行

以debug的形式执行即可进入断点

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值