前言:對於什麼是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>
<packaging>pom</packaging>
<name>cloud</name>
<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>
<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>
如有錯誤,歡迎指出。作爲記錄作用,避免以後再次搭建項目時忘記