使用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] ------------------------------------------------------------------------
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。