• Gradle-01:0基础入门


    gradle

    前提

    Gradle 语法都是 Groovy ,详情见 [[Groovy入门]]

    1. JDK、Maven、Nexus版本要求

    本工程运行环境对应的版本 JDK版本在 1.8Maven版本 3.6Nexus 3.34+ 三者的安装不在本工程内容中,自行百度脑补。

    当前 Gradle 需要 8 到 16 之间的 Java 版本。尚不支持 Java 17 及更高版本,下图为 Gradle 兼容性表格。

    Java version对应 Gradle 版本
    82
    94.3
    104.7
    115
    125.4
    136
    146.3
    156.7
    167

    2. Gradle环境配置(Windows)

    官网

    • Windows下配置 Gradle环境配置,需要先从 官网  下载最新的官方发行版

    • 将下载的压缩文件解压到一个路径下,例如:D:\ProgramFiles\Gradle\gradle-7.2

    • 配置环境变量 GRADLE_HOME ,值为 D:\ProgramFiles\Gradle\gradle-7.2

    • GRADLE_HOME 添加到 path

    • 再添加环境变量 GRADLE_USER_HOME ,这个是用户空间,指向磁盘中一个文件夹即可,例如:E:\Repertory\RepositoryGradle\.gradle 这个很重要

    • GRADLE_USER_HOME 目录下我们新建两个文件,gradle.propertiesinit.gradle

    Gradle 附带自己的 Groovy 库,因此不需要安装 Groovy,同时 Gradle 会忽略任何现有的 Groovy 安装。

    2.1. gradle.properties

    Gradle 配置项,可以控制用于执行构建的 Java 进程,如果在多个位置配置了一个选项,则以在这些位置中的任何一个中找到的第一个配置项为准:

    • 命令行,使用 -P / --project-prop 环境选项设置

    • GRADLE_USER_HOME 目录中的 gradle.properties

    • 项目根目录下的 gradle.properties

    • Gradle 安装目录中的 gradle.properties

    Gradle 配置项主要有以下属性可用于配置

    org.gradle.caching=(true,false)

    当设置为 true 时,Gradle 将在可能的情况下重用任何先前构建的任务输出,从而使构建速度更快。了解有关使用构建缓存的更多信息。

    org.gradle.caching.debug=(true,false)

    设置为 true 时,每个任务的单个输入属性哈希值和构建缓存键都会记录在控制台上。了解有关任务输出缓存的更多信息

    org.gradle.parallel=(true,false)

    配置后,Gradle 将分叉到 org.gradle.workers.max JVM 以并行执行项目。要了解有关并行任务执行的更多信息,请参阅 Gradle 构建性能部分

    org.gradle.daemon=(true,false)

    当设置为 true 时,Gradle 守护程序用于运行构建。3.0开始默认开启。

    当然 Gradle 配置项 还有其他属性可供选择,具体,比如日志、优先权、警告模式等。 此处给除一个常见的配置项,具体如下:

    
    org.gradle.daemon=true
    
    org.gradle.parallel=true
    
    org.gradle.caching=true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.2. init.gradle

    Gradle 全局配置,主要定义定义仓库

    
    allprojects{
    
     repositories {
    
     def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
    
     def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
    
     all {
    
     ArtifactRepository repo ->
    
     if(repo instanceof MavenArtifactRepository){
    
     def url = repo.url.toString()
    
     if (url.startsWith('https://repo1.maven.org/maven2')) {
    
     project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
    
     remove repo
    
     }
    
     if (url.startsWith('https://jcenter.bintray.com/')) {
    
     project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
    
     remove repo
    
     }
    
     }
    
     }
    
     maven {
    
     allowInsecureProtocol = true
    
     url ALIYUN_REPOSITORY_URL
    
     url ALIYUN_JCENTER_URL
    
     }
    
     }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    演示

    3. IDEA工具集成

    演示所使用的IDEA版本是 2021.1.2

    20210907170523

    3.1. IDEA配置Gradle

    IDEA 集成 Gradle需要安装插件,否则无法使用,插件不论你在线安装还是离线安装都可以。

    20210907165919

    20210907174102

    IDEA 中的 Gradle user home 后的选项内容将是配置的 GRADLE_USER_HOME 环境变量。 这个点非常会让人忽视的。

    3.2. 创建和认识Java工程项目

    New Project_1

    New Project_2

    • Name:项目名称

    • Location:所在的路径

    • GroupId、ArtifactId、Version

    这些都与Maven雷同。

    New Project_3

    运行 gradle build 的输出结果

    
    17:21:31: Executing task 'build'...
    
      
    
    > Task :compileJava NO-SOURCE
    
    > Task :processResources NO-SOURCE
    
    > Task :classes UP-TO-DATE
    
    > Task :jar UP-TO-DATE
    
    > Task :assemble UP-TO-DATE
    
    > Task :compileTestJava NO-SOURCE
    
    > Task :processTestResources NO-SOURCE
    
    > Task :testClasses UP-TO-DATE
    
    > Task :test NO-SOURCE
    
    > Task :check UP-TO-DATE
    
    > Task :build UP-TO-DATE
    
      
    
    BUILD SUCCESSFUL in 131ms
    
    1 actionable task: 1 up-to-date
    
    17:21:31: Task execution finished 'build'.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    基本常用任务

    上图中罗列的基本任务,可以先认识下,下来重点描述下这两个文件 build.gradlesetting.gradle,这是我们Gradle工程开发最核心的两个文件。

    • build.gradle

    这个文件非常重要, Gradle 的核心配置文件,相当于 Maven 中的 POM ,此后工程开发都围绕着这个文件来编写。

    
    plugins { //插件
    
     id 'java'
    
    }
    
      
    
    group 'xyz.wongs.gradle'    // group 分组
    
    version '1.0.0-SNAPSHOT'    // 版本
    
      
    
    repositories {  // 仓库
    
     mavenCentral()
    
    }
    
      
    
    dependencies {  // 依赖
    
     testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    
     testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    
    }
    
      
    
    test {  // 测试
    
     useJUnitPlatform()
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • setting.gradle

    这是针对模块的引入配置文件,可以在此管理每个模块激活状态,一般在添加新模块的过程中使用。

    
    rootProject.name = 'demo'
    
    
    • 1
    • 2
    • 3

    4. Gradle Wrapper

    Maven中,开发者和项目服务器都需要配置有相同的 Maven版本,才能保证应用正常编译执行,Gradle提供一个 Gradle Wrapper概念,可以项目中自带Gradle的处理环境,Gradle Wrapper简化 Gradle本身的安装、部署,避免 Gradle版本不通带来的各种问题。

    在任意目录中 执行 gradle wrapper

    20210908092359

    切换版本

    操作描述
    切换 6.8 版本gradle wrapper --gradle-version 6.8
    切换 6.5 版本gradle wrapper --gradle-version 6.5

    20210908093052

    执行上述命令, gradle-wrapper.propertiesdistributionUrl 后的 URL 变为 https\://services.gradle.org/distributions/gradle-6.8-bin.zip ,版本切换成功。

    20210908093313

    5. 代码分析器

    所有开发人员编写的代码,在程序上线之前都一定要进行性能的检测,而对于 Gradle 项目来讲,也需要清楚的知道,项目代码构建的情况,包括构建环境、依赖库以及程序性能上存在的问题,这样方便与人沟通。为了解决这样的构建问题,所以在 Gradle 中就提供了一个 Build Scan 代码扫描工具(这是一个在 4.3 版本才开始提供), 这个工具会自动的将本地构建的过程发送到指定服务器端,并且由服务器端上随机生成的可供访问的链接,通过链接进行注册,即可完成访问,这个分析器是 gradle wrapper 提供。

    
    gradlew build --scan
    
    
    • 1
    • 2
    • 3

    20210908093948

    输入邮箱,在邮箱中确认

    首页

    邮箱确认

    报告内容

  • 相关阅读:
    Web5到底是什么?Web4去哪了?
    相机存储卡格式化了数据能恢复吗,相机储存卡数据误删如何恢复
    KingBase服务器参数配置(Kylin)
    如何做好一次代码审查,什么样是一次优秀的代码审查,静态代码分析工具有哪些
    【MyBatis】缓存——使查询变得快快快!
    Logback 日志格式参数说明
    【matplotlib基础】--样式表
    vue使用 router 实现导航栏跳转
    一键体验 Istio
    5年没发paper,学术论文写到头秃...
  • 原文地址:https://blog.csdn.net/rothchil/article/details/126557254