IDEA中配置pom文件时对annotationProcessorPaths作修改后Lombok不起作用

IDEA中配置pom文件时对annotationProcessorPaths作修改后Lombok不起作用

问题:在学习MyBatis-Flex框架时,要求在pom文件中配置 annotationProcessor,官方说这样的好处是:mybatis-flex-processor提供APT服务,可以配置到annotationProcessorPaths,配置后,无需在依赖中声明mybatis-flex-processor依赖。

官方的配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>com.mybatis-flex</groupId>
                <artifactId>mybatis-flex-processor</artifactId>
                <version>1.5.4</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>

可以看到,在annotationProcessorPaths中只配置了mybatis-flex-processor,并没有配置lombok相关内容。

之后我在进行数据库sql测试时,出现了查询到的数据使用原始的toString方法(Class@hashCode)表示,我意识到问题不对,我又尝试调用lombok生成的get、set方法,发现在编译时没有产生问题,但是一运行起来就会报错:java: cannot find symbol。我知道是lombok没有生效,但这没有生效的表现形式十分隐蔽,在编译时完全看不出来,只有运行时才知道问题出现。

所以网上的那些常规解决方法(下载lombok插件,设置中开启Enable annotation processing等)都没有用,我回忆起之前lombok没有失效的时候,与之相比,我只是修改了pom文件的内容,而且大概率是出在plugin部分。

我尝试注释掉plugin部分的内容,然后再运行mvn clean package,几番测试下来,让我发现了问题所在,即上述配置部分。由于在

解决方案:annotationProcessorPaths中仅仅配置了mybatis-flex-processor的内容,而没有lombok的配置,导致lombok在运行时的失效,加上lombok相关内容后,问题解决。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.28</version>
            </path>
            <path>
                <groupId>com.mybatis-flex</groupId>
                <artifactId>mybatis-flex-processor</artifactId>
                <version>1.5.4</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值