目录
前言
本文使用模块化简单构建一个spring boot web后端项目,集成了Mybatis-plus、redis、文件存储minio、RabbitMQ、knife4j、Elasticsearch、shiro等组件,各个组件以模块的形式存在,可以根据自身需要进行集成使用;实现了统一返回、统一异常处理、权限认证、接口API等功能;另外,各个组件只是简单的使用,如要实现复杂功能还需自行研究;
一、创建父项目(initMode)
删除src文件夹
编辑pom.xml(initMode)
<?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.7.RELEASE</version>
</parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
<name>initMode</name>
<packaging>pom</packaging>
<description>初始化构建spring boot web项目</description>
<modules>
</modules>
<properties>
<!-- maven打包时跳过测试 -->
<skipTests>true</skipTests>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!--编译-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
二、创建通用模块(common)
删除pom.xml以外其他文件
编辑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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>citc-lyj-common</artifactId>
<packaging>pom</packaging>
<description>通用模块</description>
<modules>
</modules>
</project>
编辑pom.xml(initMode),将common模块加入到父模块
<?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.7.RELEASE</version>
</parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
<name>initMode</name>
<packaging>pom</packaging>
<description>初始化构建spring boot web项目</description>
<modules>
<module>common</module>
</modules>
<properties>
<!-- maven打包时跳过测试 -->
<skipTests>true</skipTests>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!--编译-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.1 创建基础封装模块(base)
编辑pom.xml(initMode-common-base) 引入基础依赖
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-common-base</artifactId>
<packaging>jar</packaging>
<description>基础封装模块</description>
<dependencies>
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring boot 单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--json工具-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!--常用工具包-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!--常用io工具包-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!--AOP-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--引入lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入Hutool工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<!--参数校验工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
</project>
编辑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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-common</artifactId>
<packaging>pom</packaging>
<description>通用模块</description>
<modules>
<module>base</module>
</modules>
</project>
编辑pom.xml(initMode),设置基础依赖版本
<?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.7.RELEASE</version>
</parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
<name>initMode</name>
<packaging>pom</packaging>
<description>初始化构建spring boot web项目</description>
<modules>
<module>common</module>
</modules>
<properties>
<!-- maven打包时跳过测试 -->
<skipTests>true</skipTests>
<java.version>1.8</java.version>
<!--fastjson版本 json工具-->
<fastjson.version>1.2.72</fastjson.version>
<!--常用工具包-->
<commons-lang3.version>3.1</commons-lang3.version>
<!--常用io工具包-->
<commons-io.version>2.6</commons-io.version>
</properties>
<!--dependencyManagement 不下载jar包,只是定义版本号-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!--编译-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
三、创建服务应用聚合模块(service)
编辑pom.xml(service)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-service</artifactId>
<packaging>pom</packaging>
<description>服务应用模块</description>
<modules>
</modules>
</project>
编辑pom.xml(initMode)
<?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.7.RELEASE</version>
</parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
<name>initMode</name>
<packaging>pom</packaging>
<description>初始化构建spring boot web项目</description>
<modules>
<module>common</module>
<module>service</module>
</modules>
<properties>
<!-- maven打包时跳过测试 -->
<skipTests>true</skipTests>
<java.version>1.8</java.version>
<!--fastjson版本 json工具-->
<fastjson.version>1.2.72</fastjson.version>
<!--常用工具包-->
<commons-lang3.version>3.1</commons-lang3.version>
<!--常用io工具包-->
<commons-io.version>2.6</commons-io.version>
</properties>
<!--dependencyManagement 不下载jar包,只是定义版本号-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!--编译-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.1创建管理应用模块(management)
编辑pom.xml(management)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-service-management</artifactId>
<packaging>jar</packaging>
<description>管理应用模块</description>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<!--打包 因为是 SpringBoot 项目,所有 spring-boot-maven-plugin 插件打包 打包插件配置在有启动类的模块就行-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<executions>
<execution>
<id>repackage</id>
<goals>
<!-- 重新打包,把所有依赖都打进 jar 包中,这样打出来的包就可以直接独立运行,因为里面包含了所有依赖 -->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
编辑pom.xml(service)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-service</artifactId>
<packaging>pom</packaging>
<description>服务应用聚合模块</description>
<modules>
<module>management</module>
</modules>
<dependencies>
<dependency>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common-base</artifactId>
</dependency>
</dependencies>
</project>
编辑pom.xml,定义initMode-common-base版本号
<?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.7.RELEASE</version>
</parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
<name>initMode</name>
<packaging>pom</packaging>
<description>初始化构建spring boot web项目</description>
<modules>
<module>common</module>
<module>service</module>
</modules>
<properties>
<!-- maven打包时跳过测试 -->
<skipTests>true</skipTests>
<java.version>1.8</java.version>
<!--fastjson版本 json工具-->
<fastjson.version>1.2.72</fastjson.version>
<!--常用工具包-->
<commons-lang3.version>3.1</commons-lang3.version>
<!--常用io工具包-->
<commons-io.version>2.6</commons-io.version>
</properties>
<!--dependencyManagement 不下载jar包,只是定义版本号-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common-base</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!--编译-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
编辑启动类ManagementApplication.java
package com.lyj.service.management;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(scanBasePackages = "com.lyj.**") //因为部分bean所在的包不在启动类所在的包及子包中,所以需要定义扫描包路径
@EnableAsync //注解来启动异步方法调用的支持
@EnableScheduling //开启定时任务支持
public class ManagementApplication {
public static void main(String[] args) {
SpringApplication.run(ManagementApplication.class, args);
}
}
3.2配置logback日志系统
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--使用spring boot 配置文件-->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!--LOG_FILE_MAX_HISTORY在spring boot中默认为=7,重置默认值为0,以免误删归档日志-->
<property name="LOG_FILE_MAX_HISTORY" value="${LOG_FILE_MAX_HISTORY:-0}"/>
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<!--异步输出到文件-->
<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
<!-- 队列长度默认256,阈值20%,达到阈值丢弃INFO及以下级别日志,从不阻塞,队列满了则丢弃日志-->
<neverBlock>true</neverBlock>
<appender-ref ref="FILE" />
</appender>
<!--异步输出到CONSOLE-->
<appender name="ASYNC_CONSOLE" class="ch.qos.logback.classic.AsyncAppender">
<!-- 队列长度默认256,阈值0,从不阻塞,队列满了则丢弃日志-->
<discardingThreshold >0</discardingThreshold>
<neverBlock>true</neverBlock>
<appender-ref ref="CONSOLE" />
</appender>
<root level="INFO">
<appender-ref ref="ASYNC_CONSOLE" />
<appender-ref ref="ASYNC_FILE" />
</root>
</configuration>
配置application.yml
logging: #日志系统logback配置
file:
path: ./ #设置logback日志输出位置 ./代表当前项目下
四、创建功能组件模块(function)
编辑pom.xml(function)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-function</artifactId>
<packaging>pom</packaging>
<description>功能组件模块</description>
<modules>
</modules>
</project>
编辑pom.xml(initMod)
<?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.7.RELEASE</version>
</parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
<name>initMode</name>
<packaging>pom</packaging>
<description>初始化构建spring boot web项目</description>
<modules>
<module>common</module>
<module>service</module>
<module>function</module>
</modules>
<properties>
<!-- maven打包时跳过测试 -->
<skipTests>true</skipTests>
<java.version>1.8</java.version>
<!--fastjson版本 json工具-->
<fastjson.version>1.2.72</fastjson.version>
<!--常用工具包-->
<commons-lang3.version>3.1</commons-lang3.version>
<!--常用io工具包-->
<commons-io.version>2.6</commons-io.version>
</properties>
<!--dependencyManagement 不下载jar包,只是定义版本号-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common-base</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!--编译-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
五、测试
启动ManagementApplication.java
六、完整pom.xml
pom.xml(initMod)
<?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.7.RELEASE</version>
</parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
<name>initMode</name>
<packaging>pom</packaging>
<description>初始化构建spring boot web项目</description>
<modules>
<module>common</module>
<module>service</module>
<module>function</module>
</modules>
<properties>
<!-- maven打包时跳过测试 -->
<skipTests>true</skipTests>
<java.version>1.8</java.version>
<!--fastjson版本 json工具-->
<fastjson.version>1.2.72</fastjson.version>
<!--常用工具包-->
<commons-lang3.version>3.1</commons-lang3.version>
<!--常用io工具包-->
<commons-io.version>2.6</commons-io.version>
</properties>
<!--dependencyManagement 不下载jar包,只是定义版本号-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common-base</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!--编译-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
pom.xml(common)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-common</artifactId>
<packaging>pom</packaging>
<description>通用模块</description>
<modules>
<module>base</module>
</modules>
</project>
pom.xml(base)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-common-base</artifactId>
<packaging>jar</packaging>
<description>基础封装模块</description>
<dependencies>
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring boot 单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--json工具-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!--常用工具包-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!--常用io工具包-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!--AOP-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--引入lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入Hutool工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<!--参数校验工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
</project>
pom.xml(service)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-service</artifactId>
<packaging>pom</packaging>
<description>服务应用聚合模块</description>
<modules>
<module>management</module>
</modules>
<dependencies>
<dependency>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common-base</artifactId>
</dependency>
</dependencies>
</project>
pom.xml(management)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-service-management</artifactId>
<packaging>jar</packaging>
<description>管理应用模块</description>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<!--打包 因为是 SpringBoot 项目,所有 spring-boot-maven-plugin 插件打包 打包插件配置在有启动类的模块就行-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<executions>
<execution>
<id>repackage</id>
<goals>
<!-- 重新打包,把所有依赖都打进 jar 包中,这样打出来的包就可以直接独立运行,因为里面包含了所有依赖 -->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
pom.xml(function)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>initMode-function</artifactId>
<packaging>pom</packaging>
<description>功能组件模块</description>
<modules>
</modules>
<dependencies>
<dependency>
<groupId>com.lyj.initMode</groupId>
<artifactId>initMode-common-base</artifactId>
</dependency>
</dependencies>
</project>