springboot创建多module项目的实例
作者:juny0302
这篇文章主要介绍了springboot创建多module项目的实例代码,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
使用springboot创建多module项目,以前也做过多次,一段时间不用又忘了,在这里做个记录
项目名称 | 作用 | 说明 |
---|---|---|
demo-root | 根项目 | 父项目,只用来管理其他module,提供基础的pom配置 |
demo-api | 启动项目 | api项目,启动类放在此项目中 |
demo-common | 通用工具 | 只放一些通用代码、工具类等 |
项目名称作用说明demo-root根项目父项目,只用来管理其他module,提供基础的pom配置demo-api启动项目api项目,启动类放在此项目中demo-common通用工具只放一些通用代码、工具类等
创建项目
创建demo-parent
创建过程一路next即可
项目建好后,删掉src目录,因为不需要在根项目中写代码
创建demo-api
创建过程跟root项目基本一致,所不同的是,需要右键点击根项目,然后在弹出菜单中选择new–> module
以后的过程跟root项目一样,略…
创建demo-common
过程跟demo-api一样,略…
修改各个项目的pom文件
创建过程很简单,这一步才是重点
修改demo-root的pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo-root</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo-root</name> <description>Demo project for Spring Boot</description> <!-- 配置打包类型,不写默认是jar,一般来说所有的父级项目的packaging都为pom --> <packaging>pom</packaging> <!-- 添加管理的包 --> <modules> <module>demo-api</module> <module>demo-common</module> </modules> <properties> <!-- 设置项目编码 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- maven 插件版本 --> <maven.compiler.plugin.version>3.1</maven.compiler.plugin.version> <java.version>1.8</java.version> </properties> <!-- 根据自己的需要添加依赖包,注意:root中添加的依赖包会继承到root所管理的所有module中 --> <dependencies> <!-- SpringBoot 核心包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- SpringBoot Web容器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- SpringBoot 拦截器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <!-- spring-boot-devtools --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 表示依赖不会传递 --> </dependency> <!-- spring security 安全认证 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <!-- SpringBoot 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- redis 缓存操作 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> </dependencies> <!-- <build>--> <!-- <plugins>--> <!-- <plugin>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-maven-plugin</artifactId>--> <!-- </plugin>--> <!-- </plugins>--> <!-- </build>--> <!-- 重点: spring-boot-maven-plugin能够将Spring Boot应用打包为可执行的jar或war文件,root不需要,所以改成maven打包--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.plugin.version}</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
修改demo-api的pom.xml
注意我们没有指定打包类型,所以默认打成jar包
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- parent改成我们自己的root --> <!-- <parent>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-parent</artifactId>--> <!-- <version>2.3.1.RELEASE</version>--> <!-- <relativePath/> <!– lookup parent from repository –>--> <!-- </parent>--> <parent> <groupId>com.example</groupId> <artifactId>demo-root</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <!-- 可以继承root --> <!-- <groupId>com.example</groupId>--> <artifactId>demo-api</artifactId> <!-- 可以继承root --> <!-- <version>0.0.1-SNAPSHOT</version>--> <name>demo-api</name> <description>Demo project for Spring Boot</description> <!-- 可以继承root --> <!-- <properties>--> <!-- <java.version>1.8</java.version>--> <!-- </properties>--> <dependencies> <!-- 添加自己的依赖包 --> <dependency> <groupId>com.example</groupId> <artifactId>demo-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> <!-- 重点 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 当所依赖的其他模块,有启动类的时候,需要以下配置,指定唯一启动类--> <configuration> <!-- 指定该Main Class为全局的唯一入口 --> <mainClass>com.example.demoapi.DemoApiApplication</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <!--可以把依赖的包都打包到生成的Jar包中--> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
修改demo-common的pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 跟demo-api一样,干掉原来的,使用我们自己的 --> <!-- <parent>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-parent</artifactId>--> <!-- <version>2.3.1.RELEASE</version>--> <!-- <relativePath/> <!– lookup parent from repository –>--> <!-- </parent>--> <parent> <groupId>com.example</groupId> <artifactId>demo-root</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>demo-common</artifactId> <name>demo-common</name> <description>Demo project for Spring Boot</description> <properties> <!-- 添加自己的 --> <mybatis-plus.version>3.3.1</mybatis-plus.version> </properties> <dependencies> <!-- 添加自己的 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>${mybatis-plus.version}</version> </dependency> </dependencies> <!-- 重点:删掉原来的,原因还是不需要可运行 --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
至此所有配置都已经完成,可以打包试试
[INFO] Reactor Summary: [INFO] [INFO] demo-root .......................................... SUCCESS [ 0.001 s] [INFO] demo-common ........................................ SUCCESS [ 1.599 s] [INFO] demo-api ........................................... SUCCESS [ 0.711 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.705 s [INFO] Finished at: 2020-06-13T09:58:53+08:00 [INFO] Final Memory: 47M/334M [INFO] ------------------------------------------------------------------------
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。