简要:
最近看了很多的Springboot3的项目,但是发现很多都是用maven来进行版本管理的,很少有用gradle来管理的,通过网上查找资料,看视频,终于自己写一个gradle管理的Springboot3的项目
第一步:创建项目
注意:JDK的版本必须要在17或者以上。
第二步:设置gradle仓库
第三步:创建项目及子模块
添加模块和微服务
其中build.gradle中引入的依赖和配置
1 description 'boot3的测试' 2 3 //构建Gradle脚本自身需要的资源,可以声明的资源包括依赖项、第三方插件、maven仓库地址等。 4 buildscript { 5 ext { 6 springBootVersion = '3.0.2' 7 springCloudVersion = '2022.0.0' 8 springCloudAlibabaVersion = '2022.0.0.0-RC1' 9 } 10 11 //设置仓库 12 repositories { 13 mavenLocal() 14 maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } 15 maven { url 'https://repo.spring.io/milestone' } 16 } 17 18 dependencies { 19 classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 20 } 21 22 } 23 24 25 //配置全局, 包括root项目和子项目 26 allprojects { 27 group 'com.an' 28 version '1.0-SNAPSHOT' 29 30 //配置编码格式 31 tasks.withType(JavaCompile) { 32 options.encoding = "UTF-8" 33 } 34 35 //设置仓库 36 repositories { 37 mavenLocal() 38 maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } 39 maven { url 'https://repo.spring.io/milestone' } 40 } 41 } 42 43 //引入版本管理 44 apply from: 'version.gradle' 45 46 47 //配置所有子项目 48 subprojects { 49 50 apply plugin: 'java' 51 apply plugin: 'java-library' //api 52 apply plugin: 'io.spring.dependency-management' 53 54 sourceCompatibility = '17' 55 targetCompatibility = '17' 56 57 58 //公用的依赖 59 dependencies { 60 compileOnly 'org.projectlombok:lombok:1.18.28' 61 annotationProcessor 'org.projectlombok:lombok:1.18.28' 62 } 63 64 test { 65 useJUnitPlatform() 66 } 67 68 69 // dependencyManagement版本统一管理,类似于父maven的dependencyManagement 70 dependencyManagement { 71 dependencies { 72 for (depJar in rootProject.ext.dependencies) { 73 dependency depJar.value 74 } 75 } 76 imports { 77 mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" 78 mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}" 79 } 80 } 81 } 82 83 //实体类 84 project(':boot3-bean') { 85 description("boot-bean存放表对应的实体类") 86 dependencies { 87 //mybatis-plus 88 api 'com.baomidou:mybatis-plus-boot-starter' 89 //mybatis 90 api 'org.mybatis:mybatis' 91 //fastjson2,注意:Spring3.0后必须引入第二代fastjson,引入第一代项目会启动不起来 92 api 'com.alibaba.fastjson2:fastjson2' 93 //commons 94 api 'org.apache.commons:commons-lang3' 95 //mysql 96 api 'mysql:mysql-connector-java' 97 //jjwt 98 api 'io.jsonwebtoken:jjwt' 99 //druid 100 api 'com.alibaba:druid' 101 //auto-trim,自动去除空格 102 api 'com.supalle:auto-trim' 103 } 104 } 105 106 //工具类 107 project("boot3-common") { 108 description("boot3-common存放微服务常用的工具类") 109 dependencies { 110 //引入bean 111 api project(':boot3-bean') 112 //SpringBootWeb 113 api 'org.springframework.boot:spring-boot-starter-web' 114 //netty 115 api 'io.netty:netty-all' 116 //生成随机数的工具类 117 api 'cn.hutool:hutool-all' 118 119 } 120 } 121 122 //业务类 123 project("boot3-service") { 124 //导入Springboot 125 apply plugin: 'org.springframework.boot' 126 //子类公用依赖 127 subprojects { 128 129 //导入java-library版本管理,无需在引入版本号 130 apply plugin: 'java-library' 131 //导入Springboot 132 apply plugin: 'org.springframework.boot' 133 134 dependencies { 135 //导入工具类,并且直接可以引入bean,无需在导入bean 136 api project(':boot3-common') 137 //导入nacos注册发现 138 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery' 139 //nacos配置中心来做配置管理 140 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config' 141 //springcloud-bootstrap的依赖(为了设置bootstap.yml) 142 api "org.springframework.cloud:spring-cloud-starter-bootstrap" 143 //valid(空值判断) 144 api 'org.springframework.boot:spring-boot-starter-validation' 145 //spring aop 146 api 'org.springframework.boot:spring-boot-starter-aop' 147 } 148 } 149 } 150 151 //网关类 152 project("boot3-gateway") { 153 subprojects { 154 //导入java-library版本管理,无需在引入版本号 155 apply plugin: 'java-library' 156 //导入Springboot 157 apply plugin: 'org.springframework.boot' 158 159 dependencies { 160 //gateway网关 161 api 'org.springframework.cloud:spring-cloud-starter-gateway' 162 //导入nacos注册中心 163 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery' 164 //nacos配置中心来做配置管理 165 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config' 166 //springcloud-bootstrap的依赖(为了设置bootstap.yml) 167 api "org.springframework.cloud:spring-cloud-starter-bootstrap" 168 //负载均衡,不设置这个会报503 169 api 'org.springframework.cloud:spring-cloud-starter-loadbalancer' 170 } 171 } 172 }
version.gradle中的配置
1 // 依赖版本管理 2 ext { 3 version = [ 4 "springboot" : "3.0.2", 5 //----bean中的依赖---- 6 "fastjson2" : "2.0.33", 7 "mybatisPlus" : "3.5.3", 8 "mysql" : "8.0.25", 9 "mybatis" : "3.5.1", 10 "lombok" : "1.18.28", 11 "druid" : "1.2.18", 12 //----common中的依赖---- 13 "hutool" : "5.8.20", 14 //----service中的依赖---- 15 ] 16 dependencies = [ 17 //----bean中的依赖---- 18 "fastjson2" : "com.alibaba.fastjson2:fastjson2:${version.fastjson2}", 19 "mybatisPlusBootStarter": "com.baomidou:mybatis-plus-boot-starter:${version.mybatisPlus}", 20 "mysql" : "mysql:mysql-connector-java:${version.mysql}", 21 "mybatis" : "org.mybatis:mybatis:${version.mybatis}", 22 "druid" : "com.alibaba:druid:${version.druid}", 23 24 //----common中的依赖---- 25 "springbootWeb" : "org.springframework.boot:spring-boot-starter-web:${version.springboot}", 26 27 //----service中的依赖---- 28 29 30 31 32 ] 33 34 }
第四步:分别设置bootstrap.yml中的配置信息
①、我这里就以admin-service的微服务举例,其他微服务也是类似配置即可
server: port: 52801 spring: # 服务名 application: name: chat-admin cloud: nacos: discovery: # 服务器中的nacos地址 server-addr: 192.168.200.130:8848 config: server-addr: 192.168.200.130:8848 file-extension: yml # SpringCloud 2021版本之后,需要用以下方式导入nacos的配置文件 config: import: - optional:nacos:chat-admin.yml # 监听 DEFAULT_GROUP:test.yml
②、admin-gateway的网关微服务配置
server:
port: 29801
spring:
application:
name: admin-gateway
cloud:
nacos:
discovery:
server-addr: 192.168.200.130:8848
config:
server-addr: 192.168.200.130:8848
file-extension: yml
# SpringCloud 2021版本之后,需要用以下方式导入nacos的配置文件
config:
import:
- optional:nacos:admin-gateway.yml # 监听 DEFAULT_GROUP:admin.yml
第五步:在nacos中设置yml配置信息
设置成功后分别启动项目,可以看到已经能成功启动
标签:web,spring,boot,nacos,gradle,api,Springboot3,org,cloud From: https://www.cnblogs.com/and1rson/p/17693150.html