• 5分钟了解Gradle并构建java项目


    5分钟了解Gradle并构建java项目

    一、Gradle是什么及优势

    Gradle就是跟Maven类似的依赖加载和项目构建工具。他有如下特点

    • 配置相关依赖代码量少,不会像maven一样xml过多
    • 打包编译测试发布都有,而且使用起来方便
    • 利用自定义的任务可以完成自己想要的功能

    另外还有一点,他的速度很快

    gradle使用构建缓存、守护进程等方式提高编译速度。结果就是gradle的编译速度要远超maven,平均编译速度比Maven快好几倍,而且项目越大,这个差距就越明显。

    img

    二、安装Gradle

    1.下载地址http://services.gradle.org/distributions/ ,下载你所需要对应的版本,我这里下载的是gradle-4.7-bin.zip。下载后解压到你想要的目录即可,然后设置环境变量:

    2.GRADLE_HOME
    在这里插入图片描述

    3.并且在Path中也添加**%GRADLE_HOME%\bin**的环境变量
    在这里插入图片描述

    4.然后win+R,输入cmd,并在控制台输入gradle -v检查是否成功
    在这里插入图片描述

    三、idea创建Gradle工程

    1、打开idea创建新项目
    在这里插入图片描述
    1. New Project 右侧面板中填写项目名称
    2. Language 中选择Java
    3. Build system 选择Gradle
    4. JDK版本 选择1.8
    2、填写完项目信息后,点击Create

    在这里插入图片描述

    3.打包项目

    在这里插入图片描述

    四、文件说明

    gradle工程中有2个主要的问题件:build.gradlesettings.gradle

    **1.**settings.gradle主要是用来管理多项目的也就是微服务时使用,里面包含了项目的name

    **2.**build.gradle和maven的pom.xml作用基本是一样的,用于定义依赖这些。比如:

    a.定义别名

    ext {
        set('springBootVersion', "2.3.12.RELEASE")
    }
    
    • 1
    • 2
    • 3

    b.定义依赖:

    dependencies {
        implementation group: 'com.tcl.iot.cloud.commons', name: 'iot-commons-all', version: "${iotCommonsVersion}"
    }
    
    • 1
    • 2
    • 3

    这里的implementation,默认的scope。implementation的作用域会让依赖在编译和运行时均包含在内,但是不会暴露在类库使用者的编译时。举例,如果我们的类库包含了gson,那么其他人使用我们的类库时,编译时不会出现gson的依赖。

    其他的可以看这里:https://blog.csdn.net/weixin_42864905/article/details/106910080

    c.加载插件:

    plugins {
        id 'org.springframework.boot' version '2.3.12.RELEASE'
        id 'io.spring.dependency-management' version '1.0.11.RELEASE'
        id 'java'
        id 'jacoco'
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    核心插件可以不用版本号,其他不用

    4.可以和maven对比一下

    plugins {
        id 'java'
    }
    
    group 'org.example'
    version '1.0-SNAPSHOT'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
        implementation group: 'org.apache.commons', name: 'commons-lang3', version: "${commonsLang3Version}"
    }
    
    test {
        useJUnitPlatform()
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    参考:

    https://blog.csdn.net/qq_22172133/article/details/81513955 怎么样gradle

    https://blog.csdn.net/qitongce/article/details/72466318 gradle怎么使用

    https://blog.csdn.net/weixin_42864905/article/details/106910080 为什么用gradle

  • 相关阅读:
    每日一题:如何判断是否是数组,一个既简单又复杂的问题。(不要再用Object.prototype.toString.call、instance of判断了!!!)
    C++ Qt开发:QItemDelegate自定义代理组件
    mybatis-plus中多租户字段自动处理(MyBatisPlus报错:Column ‘xxx‘ specified twice)
    DTSE Tech Talk | 第11期:深入浅出畅谈华为云低时延直播技术
    Pyttsx3+Windows语音合成不同的声音
    面向对象设计模式02.抽象工厂模式&责任链模式&观察者模式
    leetcode每天5题-Day22
    哺乳动物组织和培养细胞提取蛋白—Abbkine ExKine总蛋白提取试剂盒
    Java内码编码之UTF-16讲解 [Java][编码]
    56. 合并区间 --力扣 --JAVA
  • 原文地址:https://blog.csdn.net/qq_37431224/article/details/125433275