多模块
有些时候, 一个单体项目会被分成多个模块, 目的是划分代码功能
我使用的是 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