前言:对于什么是springcloud以及注册中心,网关这些表示什么,怎么来的等我就不写了,网上多的是这里做记录,一个项目就搭建一次,然后就开发几个月,避免忘记做个记录
第一种
-
创建项目时选择:Spring Inititlizr
-
然后选择项目架构为 Maven POM
-
剩下的按照自己的习惯填写
项目创建完成,需要改造为springcloud父项目
-
手动增加
<modules> <!--<module></module>--> </modules> 也可以不增加,后面创建子项目时会自动加载,如果没有加载则手动加上(可能会遇到) 添加 <packaging>pom</packaging> 必须
-
在properties模块中增加
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-cloud.version>Hoxton.BUILD-SNAPSHOT</spring-cloud.version>
前两句是固定的,最后一个是springboot和cloud之间的版本关系,两者是对应的,所以这里不能乱填
可以去: https://start.spring.io/info 查看版本之间的对应关系
这里只展示了springcloud的对应模块"spring-cloud": { "Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M5", "Finchley.M3": "Spring Boot >=2.0.0.M5 and <=2.0.0.M5", "Finchley.M4": "Spring Boot >=2.0.0.M6 and <=2.0.0.M6", "Finchley.M5": "Spring Boot >=2.0.0.M7 and <=2.0.0.M7", "Finchley.M6": "Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1", "Finchley.M7": "Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2", "Finchley.M9": "Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE", "Finchley.RC1": "Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE", "Finchley.RC2": "Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE", "Finchley.SR4": "Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT", "Finchley.BUILD-SNAPSHOT": "Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3", "Greenwich.M1": "Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE", "Greenwich.SR5": "Spring Boot >=2.1.0.RELEASE and <2.1.15.BUILD-SNAPSHOT", "Greenwich.BUILD-SNAPSHOT": "Spring Boot >=2.1.15.BUILD-SNAPSHOT and <2.2.0.M4", "Hoxton.SR4": "Spring Boot >=2.2.0.M4 and <2.3.0.BUILD-SNAPSHOT", "Hoxton.BUILD-SNAPSHOT": "Spring Boot >=2.3.0.BUILD-SNAPSHOT" },
然后这里选的最新的Hoxton.BUILD-SNAPSHOT 对应springboot版本在2.3.0.BUILD-SNAPSHOT以上
-
增加cloud模块配置也是固定的
<dependencyManagement>
<dependencies>
<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>
到了这里xml中的配置修改就成了cloud的父项目的配置
PS:对于项目自带的一些引入的jar包配置等,自己根据实际情况删除不删也行,一般父项目会引入的jar包都是子项目会用的,公共的,例如工具jar包。
当然如果觉得下载jar包慢,可以配置自己的远程仓库
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>地址</url>
</repository>
</repositories>
最后整个父项目的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><!-- parent这一块都可删除 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RC1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.demo</groupId><!-- 不可删除 -->
<artifactId>cloud</artifactId><!-- 不可删除 -->
<version>0.0.1-SNAPSHOT</version><!-- 不可删除 -->
<name>cloud</name><!-- 不可删除 -->
<packaging>pom</packaging><!-- 不可删除 -->
<description>Demo project for Spring Boot</description><!-- 可删除 -->
<!-- 不可删除。项目介质信息 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.BUILD-SNAPSHOT</spring-cloud.version>
</properties>
<!-- dependencies这一块可以删除。原生pom生成的导入的jar包。如有公共的jar包使用,如切面日志的jar包,
工具的jar包可以在父项目中导入 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 不可删除。项目springboot的版本是上面的<parent>模块,作为父项目,版本和cloud对应 -->
<dependencyManagement>
<dependencies>
<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>
<!-- 不可删除,打包,不需要也可删除 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
到此父项目创建完毕
第二种
- 创建项目选择maven
- 剩下的一路按照自己心意就行
- 最后的结果和第一种一样,自己手动增加一些,删除一些,修改一些。
PS:maven创建的默认会生成一大堆东西,其实都用不到。要删很多。
最后最精简的父项目配置是
<!-- 头 -->
<?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>
<groupId>com.demo</groupId>
<artifactId>cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cloud</name>
<!-- 作为父类必须pom -->
<packaging>pom</packaging>
<!-- 介质信息 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR4</spring-cloud.version>
</properties>
<!-- boot与cloud版本关系 -->
<dependencyManagement>
<dependencies>
<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>
</project>
如有错误,欢迎指出。作为记录作用,避免以后再次搭建项目时忘记