使用Gradle搭建SpringCloud项目

使用 IntelliJ IDEA 2020.1.2Gradle 构建项目。

一、新建一个父项目

1、点击菜单 File -> New -> Project -> Gradle ->Java,然后点击 Next

image-20210616164000780

2、填写项目的名称,然后点击 Finish

image-20210616164206174

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

image-20210616170441029

选择 Gradle -> Java,然后点击 Next

image-20210616164000780

2、填写模块的名称,Artifact Coordinates内不用填写,然后点击 Finish

image-20210616170958703

3、修改 build.gradle 内容

创建完成后出现 learn-common 模块(文件右下角有蓝色小方块)。

image-20210616171506783

然后我们把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.

image-20210616175411295

image-20210616175534632

image-20210616175705205

3、创建配置文件

然后我们在 src -> resources 下创建项目的配置文件 application.yml

image-20210616173621668

内容如下:

server:
  port: 80

spring:
  application:
    name: gateway01

配置完成,我们就和写普通的springboot项目一样编码即可。

四、业务模块

其他业务模块的创建方式和 learn-gateway 网关模块基本一致。

每创建一个模块,idea都会在父项目的 settings.gradle 中自动进行 include,如果是复制的模块,需要手动添加。

image-20210616174426014

posted @ 2021-06-16 18:02  喵喵扑  阅读(5352)  评论(3编辑  收藏  举报