MapStruct 添加 Maven 依赖

更新时间 2023-10-08 14:34:37

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书活动

目前, 星球 内第2个项目《仿小红书(微服务架构)》正在更新中。第1个项目:全栈前后端分离博客项目已经完结,演示地址:http://116.62.199.48/。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 255 小节,累计 39w+ 字,讲解图:1716 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1300+ 小伙伴加入,欢迎点击围观

要想在项目中使用 MapStruct,首先,需要在 Maven 项目中添加 MapStruct 依赖。

1. 添加核心依赖

将 MapStruct 核心库添加到项目的 pom.xml 文件中。下面是 MapStruct 核心依赖的示例:

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct</artifactId>
    <version>1.5.5.Final</version> <!-- 使用时请检查最新版本 -->
</dependency>

提示:你可以访问 MapStruct 的官方页面 以获取最新的依赖版本。

2. 添加编译器插件

除了核心库,还需要添加 MapStruct 的编译器插件。这是因为 MapStruct 在编译时生成映射代码。为此,我们需要在 pom.xml 中的 <build> 部分添加以下插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version> <!-- 使用时请检查最新版本 -->
            <configuration>
                <source>1.8</source> <!-- 根据你的 JDK 版本进行调整 -->
                <target>1.8</target> <!-- 根据你的 JDK 版本进行调整 -->
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>1.5.5.Final</version> <!-- 使用时请检查最新版本 -->
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

这里,我们添加了 maven-compiler-plugin 插件并为其配置了 MapStruct 的注解处理器 mapstruct-processor。这确保在编译项目时,MapStruct 会生成必要的映射实现代码。

3. 校验配置

为确保一切都正确配置,可以尝试编写一个简单的 MapStruct 接口并编译项目。如果项目成功编译,并且在 target/generated-sources 目录下生成了相应的映射实现类,那么配置应该就没问题。

@Mapper
public interface CarMapper {
    CarMapper INSTANCE = Mappers.getMapper(CarMapper.class);

    CarDto carToCarDto(Car car);
}

编译后,应该可以在上述目录下看到一个名为 CarMapperImpl 的类。

总结

MapStruct 是一个功能强大的对象映射工具,它通过在编译时自动生成代码来实现映射,从而避免了运行时的性能开销。通过正确配置 Maven 依赖和插件,我们可以轻松地在项目中集成 MapStruct 并开始使用其强大的功能。