一、创建Maven多模块项目
在开始Maven多模块项目的创建之前,需要确认本地是否已安装Maven,安装方式请参考官方文档或者其他相关文档。
1、首先我们打开IDEA,选择New Project。
2、在左侧的选项中,选择Maven。
3、在右侧的选项中,选择Create from archetype,选择maven-archetype-quickstart。
4、填写GroupId、ArtifactId、Version等信息,点击Finish完成项目创建。
<groupId>com.example.project</groupId> <artifactId>multi-module-project</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging>
5、在创建的项目中,重新创建一个Module作为我们的业务模块。
6、修改根目录的pom.xml,添加modules节点,并在其中添加刚才创建的业务模块。
<groupId>com.example.project</groupId> <artifactId>multi-module-project</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>business-module</module> </modules>
二、添加业务模块中需要的依赖
1、修改业务模块的pom.xml,添加所需要的依赖。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>provided</scope> </dependency> </dependencies>
2、在业务模块中创建一个简单的Controller。
@RestController public class HelloController { @GetMapping("/hello") public String hello() { return "Hello Spring Boot!"; } }
三、Spring Boot多模块打包配置
1、修改根目录的pom.xml,添加如下配置。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.1.8.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
2、在业务模块的pom.xml中添加如下配置。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> </configuration> </execution> </executions> </plugin> </plugins> </build>
3、使用Maven进行打包,执行命令:mvn clean package。
四、查看打包后生成的文件
1、在业务模块的target目录下看到生成的jar包,其中包含依赖的库和可执行的代码。
2、在根目录的target目录下看到一个没有后缀的文件,其中包含了所有模块的可执行代码。
五、部署运行Spring Boot多模块打包项目
1、我们可以通过java -jar命令来运行打包后的可执行文件。
java -jar multi-module-project-1.0-SNAPSHOT.jar
2、也可以将可执行文件直接上传到服务器,使用nohup或者其他工具来启动Spring Boot应用。
六、总结
本文主要介绍了如何在Spring Boot项目中使用Maven创建多模块项目,以及如何使用Maven将多个模块的代码打包成一个可执行的jar文件。
通过这种方式,我们可以更好地将一个大的应用划分为多个小的模块,开发人员可以更加专注于自己的领域,同时也更容易进行部署和运维管理。