1. 程式人生 > 其它 >使用Gradle搭建SpringCloud專案

使用Gradle搭建SpringCloud專案

使用 IntelliJ IDEA 2020.1.2Gradle 構建專案。

一、新建一個父專案

1、點選選單 File -> New -> Project -> Gradle ->Java,然後點選 Next
2、填寫專案的名稱,然後點選 Finish
3、然後等idea自動下載相關的依賴【連結外網較慢,建議使用梯子下載】。
4、修改 build.gradle 檔案內容
plugins {
    id 'java'
    id 'org.springframework.boot' version '2.3.3.RELEASE'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}

ext {
    set('springCloudVersion', "Hoxton.SR8")
    set('springCloudAlibabaVersion', "2.2.5.RELEASE")
    mysqlVersion = '8.0.25'
    lombokVersion = '1.18.20'
}

repositories {
    mavenCentral()
}

// 子專案的通用配置
subprojects {
    // 使用外掛
    apply plugin: 'java'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'

    // 專案的預設名稱和版本
    group = "com.miaopasi.learn.springcloud"
    version = '0.0.1-SNAPSHOT'

    // 指定JDK版本
    sourceCompatibility = '11'
    jar.enabled = true

    // 指定倉庫地址
    repositories {
        mavenCentral()
    }

    dependencyManagement {
        
        // 匯入SpringBoot和SpringCloud依賴Bom
        imports {
            mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
            mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}"
        }
        
        // 自定義配置第三方依賴
        dependencies {
            dependency "mysql:mysql-connector-java:${mysqlVersion}"
            dependency "lombok:org.projectlombok:${lombokVersion}"
        }
    }
}

注意:build.gradle 檔案的 groupversion 修改為自己需要的,dependencies依賴管理自行按照例子新增。

二、新增普通模組 learn-common

learn-common 模組為普通jar依賴包,不需要獨立執行。

1、選擇父專案右鍵點選 -> New -> Module

選擇 Gradle -> Java,然後點選 Next

2、填寫模組的名稱,Artifact Coordinates內不用填寫,然後點選 Finish
3、修改 build.gradle 內容

建立完成後出現 learn-common 模組(檔案右下角有藍色小方塊)。

然後我們把learn-common 模組下的 build.gradle 修改一下。

archivesBaseName = "learn-common"

// 取消打包為 bootJar 可獨立執行包,因為 common 只是一個普通的jar包
// 如果是需要獨立執行的jar包,這個就改為true
bootJar.enabled = false

dependencies {
    
    // 這裡引入依賴,不需要定義版本號,已經在父專案定義了
    implementation 'lombok:org.projectlombok'
    
}

三、新增模組 learn-gateway

learn-gateway

為API閘道器,需要獨立執行,我們需要打包為bootJar。

1、建立模組

建立步驟和 learn-common 模組基本一致,只是需要修改 build.gradle

archivesBaseName = 'learn-gateway'

// 打包為 bootJar,可獨立執行
bootJar {
    enabled = true
    archiveClassifier = 'boot'
}

dependencies {
    // 引入本地的 learn-common 模組
    implementation project(':learn-common')
    
    // 測試環境引入 spring-boot-starter-test 依賴
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // 引入 spring-cloud 依賴
    // gateway 需要註冊到註冊中心,這裡使用的是Eureka,其他註冊中心也可。
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
    
    // 需要注意:gateway 專案不能同時依賴spring-boot-starter-web
    implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
}

2、建立啟動類

右鍵專案的 src -> java 資料夾,新建包,在包裡建立啟動類 GatewayMain.java.

3、建立配置檔案

然後我們在 src -> resources 下建立專案的配置檔案 application.yml

內容如下:

server:
  port: 80

spring:
  application:
    name: gateway01

配置完成,我們就和寫普通的springboot專案一樣編碼即可。

四、業務模組

其他業務模組的建立方式和 learn-gateway 閘道器模組基本一致。

每建立一個模組,idea都會在父專案的 settings.gradle 中自動進行 include,如果是複製的模組,需要手動新增。