无目录

吐槽

问题描述:随便找了一个博客,照着配一下mapstructs。就离谱,完全照着博主的配,编译不报错,一使用就报错。第三十章:SpringBoot使用MapStruct自动映射DTO 我使用的是Spring,自动注入类,类没注入进去,会有红色下划线提醒。又改成默认配置去导入,可以导入了但是一使用就报找不到DTOMapper异常。然后去官网看了一下,发现和我照着博文配的也差不多,就是版本高了一些

...
<properties>
    <org.mapstruct.version>1.4.2.Final</org.mapstruct.version>
</properties>
...
<dependencies>
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
        <version>${org.mapstruct.version}</version>
    </dependency>
</dependencies>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source> <!-- depending on your project -->
                <target>1.8</target> <!-- depending on your project -->
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${org.mapstruct.version}</version>
                    </path>
                    <!-- other annotation processors -->
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

改了之后还是错,又是一翻找。发现有的人配的是这样的maven,改了之后居然注解直接报错了。又找了一下,发现在2019版本之前的idea需要这样配,2019和之后就不需要了。。。

 <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-Java8</artifactId>
            <version>${org.mapstruct.version}</version>
        </dependency>
         <dependency>
			 <groupId>org.mapstruct</groupId>
		        <artifactId>mapstruct-processor</artifactId>
		        <version>1.2.0.Beta2</version>
            </dependency>

再找吧,发现可能是Lombok的问题,他俩之间有冲突。。。懵逼!!。
最终也是找到了一篇博客,照着那样写也是成功的生成了mapper接口的实现类,真的难搞,就这我找了两小时!!

解决方法

MapStruct - Lombok & Maven 版本关系

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐