使用Gradle搭建SpringCloud项目
使用 IntelliJ IDEA 2020.1.2 和 Gradle 构建项目。
一、新建一个父项目
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 文件的 group
和 version
修改为自己需要的,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
,如果是复制的模块,需要手动添加。
-
SpringCloud 系列文章:https://www.cnblogs.com/lixingwu/category/1988185.html
原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。