创建 Maven Archetype
类型的项目,并使用 maven-quickstart
预设。
创建后效果:(Redis文件夹是之前配置Redis时设置的docker持久化文件夹)
那么当前根目录就作为父模块,设置项目的基本属性以及一些通用的扩展,故src
文件夹可以删掉。
配置 pom 文件
需要完成的事情:
- 配置项目基本信息。项目名称,项目描述,打包方式,版本号,JDK版本,项目编码,Maven版本号
- 先加一个 Lombok
- 设置插件管理。
spring-boot-maven-plugin
以及lombok
配置 - 设置镜像仓库提高下载速度
<?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>
<groupId>com.quanxiaoha</groupId>
<artifactId>xiaohashu</artifactId>
<version>${revision}</version>
<!-- 项目名称 -->
<name>${project.artifactId}</name>
<!-- 项目描述 -->
<description>小哈书(仿小红书),基于 Spring Cloud Alibaba 微服务架构</description>
<!-- 多模块项目需要配置打包方式为 pom -->
<packaging>pom</packaging>
<!-- 子模块管理 -->
<modules>
</modules>
<properties>
<!-- 项目版本号 -->
<revision>0.0.1-SNAPSHOT</revision>
<!-- JDK 版本 -->
<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<!-- 项目编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Maven 相关版本号 -->
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<!-- 依赖包版本 -->
<lombok.version>1.18.30</lombok.version>
</properties>
<!-- 统一依赖管理 -->
<dependencyManagement>
<dependencies>
<!-- 避免编写那些冗余的 Java 样板式代码,如 get、set 等 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- 统一插件管理 -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal> <!-- 将依赖的 Jar 一起打包 -->
</goals>
</execution>
</executions>
</plugin>
<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>
<encoding>${project.build.sourceEncoding}</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- 添加华为云、阿里云 maven 中央仓库,提升依赖下载速度 -->
<repositories>
<repository>
<id>huaweicloud</id>
<name>huawei</name>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</repository>
<repository>
<id>aliyunmaven</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
</project>
2 添加 Spring Cloud Alibaba 框架
Spring Cloud 是一个微服务架构规范,而 Alibaba 就是其第二代实现。
进入版本依赖关系页面 version-explain 选定自己需要的版本,这里就用最新的 2022.0.0.0*
对应 SpringCloud 2022.0.0
和 SpringBoot 3.0.2
版本。
故修改 pom.xml 文件中的 <properties/>
来添加版本号,以及添加依赖到 <dependencyManagement>
:
<properties>
// 省略...
<!-- 依赖包版本 -->
<spring-boot.version>3.0.2</spring-boot.version>
<spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
<spring-cloud.version>2022.0.0</spring-cloud.version>
// 省略...
</properties>
// 省略...
<!-- 统一依赖管理 -->
<dependencyManagement>
<dependencies>
<!-- Spring Boot 官方依赖管理 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring Cloud Alibaba 官方依赖管理 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring Cloud 官方依赖管理 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
// 省略...
</dependencies>
</dependencyManagement>
// 省略...