使用Gradle搭建SpringCloud專案
阿新 • • 發佈:2021-06-16
使用 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
,如果是複製的模組,需要手動新增。