解决办法:
当前mavan模块必须直接导入mapstruct的jar包坐标,不能通过依赖传递来引用
一般项目都是最外层的parent pom导入mapstruct mavn版本依赖,然后common模块引入mapstruct 的jar包,service再依赖common中的mapstruct。这样会就会导致这个问题。
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
<scope>provided</scope>
</dependency>
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Cannot find implementation for Mapstruc.NodeMapper
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:61)
at Mapstruc.NodeMapper.<clinit>(NodeMapper.java:15)
... 22 more
Caused by: java.lang.ClassNotFoundException: Cannot find implementation for Mapstruc.NodeMapper
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:75)
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:58)
... 23 more