一般都是由于使用了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; } }