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.pluginsgroupId>
    <artifactId>maven-compiler-pluginartifactId>
    <version>3.8.1version>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>com.mybatis-flexgroupId>
                <artifactId>mybatis-flex-processorartifactId>
                <version>1.5.4version>
            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.pluginsgroupId>
    <artifactId>maven-compiler-pluginartifactId>
    <version>3.8.1version>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
                <version>1.18.28version>
            path>
            <path>
                <groupId>com.mybatis-flexgroupId>
                <artifactId>mybatis-flex-processorartifactId>
                <version>1.5.4version>
            path>
        annotationProcessorPaths>
    configuration>
plugin>

你可能感兴趣的:(maven,mybatis)