多模块

有些时候, 一个单体项目会被分成多个模块, 目的是划分代码功能

我使用的是 Maven 构建项目

将 Spring Boot 项目拆分成多模块时,

需要在 Spring Boot 的启动类中加入 spring-boot-maven-plugin 编译插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

若没有使用类型 MapStruct 的框架, 直接执行编译即可 mvn package


Lombok + MapStruct

当项目集成 MapStruct, 就需要一次预编译

需将 maven-compile-plugin 插件放在使用了 MapStruct 的模块中, 并设置模块的 pom.xml 设置:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>

                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${org.mapstruct.version}</version>
                        </path>

                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok-mapstruct-binding</artifactId>
                            <version>0.2.0</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

编译为 jar

如果集成了 mapStruct, 要先运行 mvn compile 生成 MapStruct 的注解实现代码

然后再编译为最终的 jar 文件, 即运行 mvn package

最后修改:2025 年 10 月 12 日
如果觉得我的文章对你有用,请随意赞赏