一般都是由于使用了lombok插件导致的
解决方法:
首先将compiler插件版本升级到3.3以上, 查询资料发现说有可能是版本太低导致
在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>
一般到上面就结束了, 但如果实体类中重写了构造方法, 导致缺失了空参数的构造方法, 也会出现报错:
[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;
}
}
Maven-compiler-plugin 插件编译过程中报缺失get/set方法
原文:https://www.cnblogs.com/yisany/p/13185953.html