0202_【掌握】构建SpringCloud项目

1、
ext.versions = [ // 定义全部的依赖库版本号
springboot : '2.2.5.RELEASE', // SpringBoot版本号
springcloud : 'Hoxton.SR3', // SpringCloud版本号
alibabacloud : '2.2.1.RELEASE', // SpringCloudAlibaba版本号
lombok : '1.18.20', // Lombok版本号
junit : '5.6.3', // 配置JUnit测试工具的版本编号
junitPlatformLauncher : '1.6.3', // JUnit测试工具运行平台版本编号

]

ext.libraries = [ // 依赖库引入配置
'spring-boot-gradle-plugin':
"org.springframework.boot:spring-boot-gradle-plugin:${versions.springboot}",
'spring-cloud-dependencies':
"org.springframework.cloud:spring-cloud-dependencies:${versions.springcloud}",
'spring-cloud-alibaba-dependencies':
"com.alibaba.cloud:spring-cloud-alibaba-dependencies:${versions.alibabacloud}",
// 以下的配置为与项目用例测试有关的依赖
'junit-jupiter-api':
"org.junit.jupiter:junit-jupiter-api:${versions.junit}",
'junit-vintage-engine':
"org.junit.vintage:junit-vintage-engine:${versions.junit}",
'junit-jupiter-engine':
"org.junit.jupiter:junit-jupiter-engine:${versions.junit}",
'junit-platform-launcher':
"org.junit.platform:junit-platform-launcher:${versions.junitPlatformLauncher}",
'junit-platform-engine':
"org.junit.platform:junit-platform-engine:${versions.junitPlatformLauncher}",
'junit-jupiter-params':
"org.junit.jupiter:junit-jupiter-params:${versions.junit}",
'junit-bom': "org.junit:junit-bom:${versions.junit}",
'junit-platform-commons':
"org.junit.platform:junit-platform-commons:${versions.junitPlatformLauncher}",
// 以下的配置为Lombok组件有关的依赖
'lombok': "org.projectlombok:lombok:${versions.lombok}",
]

 

 

 

2、
buildscript { // 定义脚本使用资源
apply from: 'dependencies.gradle' // 引入所需要的依赖库文件
repositories { // 脚本资源仓库
maven { url 'https://maven.aliyun.com/repository/public' }
}
dependencies { // 依赖库
classpath libraries.'spring-boot-gradle-plugin' // SpringBoot插件
}
}
group project_group // 组织名称
version project_version // 项目版本

 

apply from: 'dependencies.gradle' // 导入依赖配置
def env = System.getProperty("env") ?: 'dev' // 获取env环境属性

 

subprojects {    // 配置子项目

apply plugin: 'java' // 子模块插件
apply plugin: 'org.springframework.boot' // 引入SpringBoot插件
apply plugin: 'io.spring.dependency-management' // 版本号管理
sourceCompatibility = project_jdk // 源代码版本
targetCompatibility = project_jdk // 生成类版本

 

repositories { // 配置Gradle仓库
mavenLocal()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
mavenCentral()
jcenter()
}

dependencyManagement {// 版本控制插件
imports {
mavenBom libraries.'spring-cloud-dependencies' // SpringCloud依赖管理
mavenBom libraries.'spring-cloud-alibaba-dependencies' // SpringCloudAlibaba依赖管理
}
}

    dependencies {  // 公共依赖库管理

        compile('org.springframework.boot:spring-boot-devtools') // 项目热部署

// 以下为测试环境的相关依赖配置
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'junit', module: 'junit' // 移除Junit4
}

testImplementation(enforcedPlatform(libraries.'junit-bom')) // 绑定为JUnit5运行
testImplementation(libraries.'junit-platform-commons') // Junit5测试组件
testImplementation(libraries.'junit-platform-engine') // Junit5测试组件
testImplementation(libraries.'junit-jupiter-api') // Junit5测试组件
testImplementation(libraries.'junit-vintage-engine') // Junit5测试组件
testImplementation(libraries.'junit-jupiter-engine') // Junit5测试组件
testImplementation(libraries.'junit-platform-launcher') // Junit5测试组件

// 以下为Lombok插件的相关依赖配置
compileOnly(libraries.'lombok') // 编译时生效
annotationProcessor(libraries.'lombok') // 注解时生效

 

 

}

 

    sourceSets {    // 源代码目录配置

        main { // main及相关子目录配置

java { srcDirs = ['src/main/java'] }
resources { srcDirs = ['src/main/resources', "src/main/profiles/$env"] }

}

 

        test{ // test及相关子目录配置

java { srcDirs = ['src/test/java'] }
resources { srcDirs = ['src/test/resources'] }

}

test { // 配置测试任务
useJUnitPlatform() // 使用JUnit测试平台
}

task sourceJar(type: Jar, dependsOn: classes) { // 源代码的打包任务
archiveClassifier = 'sources' // 设置文件的后缀
from sourceSets.main.allSource // 所有源代码的读取路径
}

test { // 配置测试任务
useJUnitPlatform() // 使用JUnit测试平台
}
task sourceJar(type: Jar, dependsOn: classes) { // 源代码的打包任务
archiveClassifier = 'sources' // 设置文件的后缀
from sourceSets.main.allSource // 所有源代码的读取路径
}
task javadocTask(type: Javadoc) { // JavaDoc文档打包任务
options.encoding = 'UTF-8' // 设置文件编码
source = sourceSets.main.allJava // 定义所有的Java源代码
}
task javadocJar(type: Jar, dependsOn: javadocTask) { // 先生成JavaDoc再打包
archiveClassifier = 'javadoc' // 文件标记类型
from javadocTask.destinationDir // 通过JavadocTask任务中找到目标路径
}

tasks.withType(Javadoc) { // 文档编码配置
options.encoding = 'UTF-8' // 定义编码
}
tasks.withType(JavaCompile) { // 编译编码配置
options.encoding = 'UTF-8' // 定义编码
}

artifacts { // 最终的打包的操作任务
archives sourceJar // 源代码打包
archives javadocJar // javadoc打包
}
gradle.taskGraph.whenReady { // 在所有的操作准备好后触发
tasks.each { task -> // 找出所有的任务
if (task.name.contains('test')) { // 如果发现有test任务
// 如果将enabled设置为true表示要执行测试任务,如果设置为false表示不执行测试任务
task.enabled = true
}
}
}

 [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'// 编码配置

}

 

 

 

}

3、
127.0.0.1 provider-dept-8001
127.0.0.1 consumer-springboot-80


4、
https://gitee.com/threesoil/microcloud

 

posted @   cnetsa  阅读(96)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示