Maven-compiler-plugin 插件编译过程中报缺失get/set方法

一般都是由于使用了lombok插件导致的

解决方法:

  1. 首先将compiler插件版本升级到3.3以上, 查询资料发现说有可能是版本太低导致

  2. configuration中添加上annotationProcessorPaths

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>utf-8</encoding>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
    </plugin>
    
  3. 一般到上面就结束了, 但如果实体类中重写了构造方法, 导致缺失了空参数的构造方法, 也会出现报错:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project dtlogconvert: Compilation failure
    [ERROR] ...无法将类 ...TransformRule中的构造器 TransformRul定类型;
    [ERROR]   需要: java.lang.String,java.lang.String,java.util.Map<java.lang.String,java.lang.Object>
    [ERROR]   找到: 没有参数
    [ERROR]   原因: 实际参数列表和形式参数列表长度不同
    

    这时候只需要再添加一个空参数构造方法即可:

    public class Test {
        private String name;
        
        public Test() {
        }
    
        public Test(String name) {
            this.name = name;
        }
    }
    
原文地址:https://www.cnblogs.com/yisany/p/13185953.html