記錄一下springcloud父項目

前言:對於什麼是springcloud以及註冊中心,網關這些表示什麼,怎麼來的等我就不寫了,網上多的是這裏做記錄,一個項目就搭建一次,然後就開發幾個月,避免忘記做個記錄

創建父項目

第一種

  1. 創建項目時選擇:Spring Inititlizr選擇Spring Inititlizr

  2. 然後選擇項目架構爲 Maven POM在這裏插入圖片描述

  3. 剩下的按照自己的習慣填寫

    項目創建完成,需要改造爲springcloud父項目

  4. 手動增加

    <modules>
          <!--<module></module>-->
    </modules>
    也可以不增加,後面創建子項目時會自動加載,如果沒有加載則手動加上(可能會遇到)
    添加
    <packaging>pom</packaging> 必須
    
  5. 在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以上

  6. 增加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>

到此父項目創建完畢

第二種

  1. 創建項目選擇maven在這裏插入圖片描述
  2. 剩下的一路按照自己心意就行
  3. 最後的結果和第一種一樣,自己手動增加一些,刪除一些,修改一些。
    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>

如有錯誤,歡迎指出。作爲記錄作用,避免以後再次搭建項目時忘記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章