当前位置: 首页 > news >正文

泉州市住房与城乡建设网站家具行业网站建设

泉州市住房与城乡建设网站,家具行业网站建设,成安县城乡建设规划局网站,品牌网站设计制作价格文章目录一.前言二.下载Gradle三.Gradle镜像源-全局级配置四.配置Gradle wrapper-项目级配置五.Gradle对测试的支持五.生命周期5.1 settings文件六.Gradle任务入门6.1 任务行为6.2 任务依赖方式七. Dependencies依赖引入7.1 依赖冲突及解决方案八.Gradle整合多模块SpringBoot九… 文章目录一.前言二.下载Gradle三.Gradle镜像源-全局级配置四.配置Gradle wrapper-项目级配置五.Gradle对测试的支持五.生命周期5.1 settings文件六.Gradle任务入门6.1 任务行为6.2 任务依赖方式七. Dependencies依赖引入7.1 依赖冲突及解决方案八.Gradle整合多模块SpringBoot九. Gradle整合微服务SpringCloud一.前言 gradle有突出的版本不兼容问题.因此要注意SpringBoot对Gradle的要求,以及IDEA对Gradle的要求. 在IDEA的plugins/lib/gradle中规定了gradle的最大版本号. 在2022.2.1中是6.7 在2022.3.2中是7.4. 其余自行查看该位置的版本控制.不过idea规定的版本号可以更改. 查看SpringBoot与Gradle的兼容性 二.下载Gradle Gradle官网地址 下载完整版解压后 系统变量配置Gradle仓库 键必须为GRADLE_USER_HOME 系统变量配置Gradle全局系统变量 gradle的bin目录 验证 gradle -v 三.Gradle镜像源-全局级配置 Gradle使用maven定位镜像地址参考: 阿里云云效Maven 全局配置 在Gradle的init.d目录下新建gradle为后缀的文件. allprojects {repositories {maven { name Alibaba ; url https://maven.aliyun.com/repository/public }maven { name google ; url https://maven.aliyun.com/repository/google }mavenCentral()}buildscript { repositories { maven { name Alibaba ; url https://maven.aliyun.com/repository/public }maven { name gradle-plugin ; url https://maven.aliyun.com/repository/gradle-plugin }maven { name spring-plugin ; url https://maven.aliyun.com/repository/spring-plugin }maven { name M2 ; url https://plugins.gradle.org/m2/ }}} }四.配置Gradle wrapper-项目级配置 解决项目在多台电脑开发时,Gradle环境不一致,idea不兼容等问题. Gradle指令调用本地的gradle脚本.而在项目中应当运行gradlew才是调用项目中的wrapper脚本 gradlew wrapper --gradle-version6.7当执行 gradlew.bat classes gradlew.bat test gradlew.bat build等,会下载gradle相关内容 五.Gradle对测试的支持 test{useJUnitPlatform() // 支持对junit5测试 }五.生命周期 Gradle项目的生命周期分为三大阶段: Initialization -Configuration - Execution.每个阶段都有自己的职责,具体如下图所示: Initialization 只执行一次初始化脚本. Configuration 先执行加载父脚本,再是子脚本,再是孙子脚本 5.1 settings文件 六.Gradle任务入门 6.1 任务行为 def map new HashMapString,Object(); //action属性可以设置为闭包,设置task自身的行为 map.put(action,{println task one..})task (map,task1){// 任务的配置段:在配置阶段执行println 最先执行// 任务的行为:在执行阶段执行doFirst会在doLast执行之前执行doFirst {println task1 doFirst}doLast {println task1 doLast} }task.doFirst {println task1 doFirst outer }task.doLast {println task1 doLast outer }6.2 任务依赖方式 七. Dependencies依赖引入 除非涉及到多模块依赖为了避免重复依赖咱们会使用api,其它情况我们优先选择implementation拥有大量的api 依赖项会显著增加构建时间。 7.1 依赖冲突及解决方案 依赖冲突是指 “在编译过程中, 如果存在某个依赖的多个版本, 构建系统应该选择哪个进行构建的问题”,如下所示: A、B、C 都是本地子项目 modulelog4j 是远程依赖。 编译时 B 用 1.4.2 版本的 log4jC 用 2.2.4 版本的 log4j,B 和 C 之间没有冲突 打包时 只能有一个版本的代码最终打包进最终的A对应的jar |war包对于 Gradle 来说这里就有冲突了 默认下Gradle 会使用最新版本的 jar 包【考虑到新版本的 jar 包一般都是向下兼容的】实际开发中还是建议使用官方自带的这种解决方案。当然除此之外Gradle 也为我们提供了一系列的解决依赖冲突的方法: exclude 移除一个依赖不允许依赖传递强制使用某个版本。 ● Exclude 排除某个依赖 dependencies { testImplementation org.junit.jupiter:junit-jupiter-api:5.8.1 testRuntimeOnly org.junit.jupiter:junit-jupiter-engine:5.8.1 implementation(org.hibernate:hibernate-core:3.6.3.Final){ //排除某一个库(slf4j)依赖:如下三种写法都行 exclude group: org.slf4j exclude module: slf4j-api exclude group: org.slf4j,module: slf4j-api } //排除之后,使用手动的引入即可。implementation org.slf4j:slf4j-api:1.4.0 }● 不允许依赖传递 在添加依赖项时,如果设置 transitive 为false,表示关闭依赖传递。即内部的所有依赖将不会添加到编译和运行时的类路径。 dependencies { testImplementation org.junit.jupiter:junit-jupiter-api:5.8.1 testRuntimeOnly org.junit.jupiter:junit-jupiter-engine:5.8.1 implementation(org.hibernate:hibernate-core:3.6.3.Final){ //不允许依赖传递一般不用 transitive(false) } //排除之后,使用手动的引入即可implementation org.slf4j:slf4j-api:1.4.0 }● 强制使用某个版本 dependencies { testImplementation org.junit.jupiter:junit-jupiter-api:5.8.1 testRuntimeOnly org.junit.jupiter:junit-jupiter-engine:5.8.1 implementation(org.hibernate:hibernate-core:3.6.3.Final) //强制使用某个版本!!【官方建议使用这种方式】 implementation(org.slf4j:slf4j-api:1.4.0!!) //这种效果和上面那种一样,强制指定某个版本implementation(org.slf4j:slf4j-api:1.4.0){ version{ strictly(1.4.0) } } }八.Gradle整合多模块SpringBoot SpringBoot官网整合说明 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributionUrlhttps\://services.gradle.org/distributions/gradle-7.5-bin.zip zipStoreBaseGRADLE_USER_HOME zipStorePathwrapper/dists模块聚合./settings.gradle 新建.gradle后缀的文件做版本管理 config.gradle ext {lombokVerison 1.18.24mybatisPlusVersion 3.5.2druidVersion 1.2.8mysqlVersion 8.0.32commonsVersion 3.12.0 }./build.gradle抽取公共配置, 编码,环境,镜像源 // 加载构建期需要的插件 buildscript {repositories {maven { name Alibaba; url https://maven.aliyun.com/repository/public }maven { name google; url https://maven.aliyun.com/repository/google }maven { name gradle-plugin; url https://maven.aliyun.com/repository/gradle-plugin }maven { name spring-plugin; url https://maven.aliyun.com/repository/spring-plugin }maven { name M2; url https://plugins.gradle.org/m2/ }mavenCentral()}// 维护插件版本dependencies {classpath(org.springframework.boot:spring-boot-gradle-plugin:2.6.3)} } // 导入插件 plugins {id java-library }group com.vector version 1.0-SNAPSHOT// 读取gradle版本配置 apply from: config.gradle// 对所有子模块做统一管理 subprojects {//添加插件 目前Gradle版本不支持在allprojects下声明plugins使用的是旧的写法apply plugin: java-libraryapply plugin: org.springframework.boot //维护springboot版本号,不单独使用,和下面两个插件一起用apply plugin: io.spring.dependency-management// 相当于dependencyManagement版本管理//基本JDK配置sourceCompatibility 1.8sourceCompatibility 1.8targetCompatibility 1.8compileJava.options.encoding UTF-8compileTestJava.options.encoding UTF-8tasks.withType(JavaCompile).configureEach {options.encoding UTF-8}// SpringBoot Plugin生效的非常关键的设置// 主启动类位置bootJar {mainClass.set(org.vector.Main)}//依赖的配置:设置通用的依赖dependencies {testImplementation org.junit.jupiter:junit-jupiter-apitestRuntimeOnly org.junit.jupiter:junit-jupiter-enginecompileOnly group: org.projectlombok, name: lombok, version: lombokVerison}test {useJUnitPlatform()} }project(module01) {apply plugin: java-library//支持apidependencies {compileOnly group: org.projectlombok, name: lombok, version: lombokVerison} } project(module02) {apply plugin: java-library//支持apidependencies {// implementation不会进行依赖传递. api可以进行依赖传递api project(:module01)// mp持久化框架implementation group: com.baomidou, name: mybatis-plus-boot-starter, version: mybatisPlusVersion// druid连接池implementation group: com.alibaba, name: druid-spring-boot-starter, version: druidVersion// mysql数据库implementation group: mysql, name: mysql-connector-java, version: mysqlVersion} }project(module03) {dependencies {// 不需要在继续依赖传递implementation project(:module02)// spring-boot-starter-webimplementation org.springframework.boot:spring-boot-starter-web//spring-boot-starter-testtestImplementation org.springframework.boot:spring-boot-starter-test// spring-boot-starter-aopimplementation org.springframework.boot:spring-boot-starter-aop//spring-boot-starter-data-redisimplementation org.springframework.boot:spring-boot-starter-data-redis// commons工具类implementation group: org.apache.commons, name: commons-lang3, version: commonsVersion} } 那么可以自行探寻更优雅的写法. 九. Gradle整合微服务SpringCloud 项目结构 创建version.gradle ext {version [lombokVerison : 1.18.24,mybatisPlusVersion: 3.5.2,druidVersion : 1.2.8,mysqlVersion : 8.0.32,commonsVersion : 3.12.0]// 公共依赖dependencies [lombok : org.projectlombok:lombok:${version.lombokVerison},druid : com.alibaba:druid-spring-boot-starter:${version.druidVersion},mysql : mysql:mysql-connector-java:${version.mysqlVersion},common-lang3: org.apache.commons:commons-lang3:${version.commonsVersion},mybatisPlus : com.baomidou:mybatis-plus-boot-starter:${version.mybatisPlusVersion}]}./build.gradle description 微服务父工程//构建Gradle脚本自身需要的资源可以声明的资源包括依赖项、第三方插件、maven仓库地址等。 buildscript {ext {springBootVersion 2.6.3springCloudversion 2021.0.1springCloudAlibabaVersion 2021.1springBootGradlePlugin 2.6.3}repositories {maven { name Alibaba; url https://maven.aliyun.com/repository/public }maven { name google; url https://maven.aliyun.com/repository/google }maven { name gradle-plugin; url https://maven.aliyun.com/repository/gradle-plugin }maven { name spring-plugin; url https://maven.aliyun.com/repository/spring-plugin }maven { name M2; url https://plugins.gradle.org/m2/ }mavenCentral()}// 维护插件版本dependencies {classpath(org.springframework.boot:spring-boot-gradle-plugin:${springBootGradlePlugin})} }group com.vector version 1.0-SNAPSHOT// 读取gradle版本配置 apply from: version.gradle// 对所有子模块做统一管理 subprojects {//添加插件 目前Gradle版本不支持在allprojects下声明plugins使用的是旧的写法apply plugin: java-libraryapply plugin: org.springframework.boot //维护springboot版本号,不单独使用,和下面两个插件一起用apply plugin: io.spring.dependency-management// 相当于dependencyManagement版本管理// 将配置信息加载进声明中.版本控制dependencyManagement{dependencies {for(depJar in rootProject.ext.dependencies){dependency depJar.value}}imports {// spring-cloud-dependenciesmavenBom org.springframework.cloud:spring-cloud-dependencies:${springCloudversion}// spring-cloud-alibaba-dependenciesmavenBom com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}}}//依赖的配置:设置通用的依赖dependencies {testImplementation org.junit.jupiter:junit-jupiter-apitestRuntimeOnly org.junit.jupiter:junit-jupiter-engine// spring-boot-starterimplementation org.springframework.boot:spring-boot-starter// spring-cloud-starter-alibaba-nacos-discoveryimplementation com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery// spring-cloud-starter-alibaba-nacos-configimplementation com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config// spring-cloud-alibaba-sentinel-gatewayimplementation com.alibaba.cloud:spring-cloud-alibaba-sentinel-gateway}//基本JDK配置sourceCompatibility 1.8sourceCompatibility 1.8targetCompatibility 1.8compileJava.options.encoding UTF-8compileTestJava.options.encoding UTF-8tasks.withType(JavaCompile).configureEach {options.encoding UTF-8}test {useJUnitPlatform()} }project(module01) {description (微服务模块1)apply plugin: java-library//支持apidependencies {//lombokapi org.projectlombok:lombokapi mysql:mysql-connector-javaapi org.apache.commons:commons-lang3} } project(module02) {description (微服务模块2)apply plugin: java-library//支持apidependencies {// mp持久化框架implementation com.baomidou:mybatis-plus-boot-starter// druid-spring-boot-starterimplementation com.alibaba:druid-spring-boot-starter// mysql数据库implementation mysql:mysql-connector-java} }project(module03) {description (微服务模块3)dependencies {// spring-boot-starter-webimplementation org.springframework.boot:spring-boot-starter-web//spring-boot-starter-testtestImplementation org.springframework.boot:spring-boot-starter-test// spring-boot-starter-aopimplementation org.springframework.boot:spring-boot-starter-aop//spring-boot-starter-data-redisimplementation org.springframework.boot:spring-boot-starter-data-redis// commons工具类implementation org.apache.commons:commons-lang3} }
http://www.hkea.cn/news/14363576/

相关文章:

  • 如何做体育彩票网站中国采购与招标网官网首页
  • 我国外贸企业网站建设计算机培训课程
  • crm网站下载重庆网站推广产品企业
  • 合肥大型网站设计公千博企业网站管理系统完整版 2014
  • 自己免费怎么做网站1688网站特色
  • 网络公司具体是干什么的优化是什么意思?
  • 淘客免费网站建设认证空间如何显示网站
  • 中国网站备案工商管理网站
  • 学校网站开发报价表杭州做网站费用
  • 做网站的带宽wordpress主题清除数据
  • 网站建设业务越做越累wordpress5.0编辑器文本格式
  • 自适应网站如何做mip律师网站维护
  • 电商网站取名专业团队口号沙雕
  • 极乐宝盒网站建设北京网站优化济南兴田德润简介电话
  • 哈尔滨建设网站的免费咨询东莞专业网站设计建站公司
  • wordpress 多媒体快速排名优化
  • 申请网站价格网站开发要用cms
  • 烟台网站建设科技权威发布四字图片
  • 网站开发详细设计文档惠州排名推广
  • 网站开发人员构成263企业邮箱后缀
  • 小学微机作业做网站企业 网站 建设 规范
  • 沈阳定制网站手机做网页的软件
  • 北京南站是高铁站吗知乎seo优化
  • 永川网站制作联系电话企业网站源码带手机版
  • 网站关键词优化原理免费网站app下载汅api
  • 做外贸怎样打开国外网站电销系统软件排名
  • 网站源码下载了属于侵权吗免费建设网站赚钱
  • 怎么做网站h汉狮小制作小发明手工初中
  • 青岛西海岸新区城市建设局网站wordpress1.4
  • 德国的网站后缀沈阳自助模板建站