gradle安装配置与使用

目录

  • 什么是gradle
  • gradle下载与安装
  • gradle使用示例,利用gradle建立两个模块

什么是gradle

Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

简单来说gradle就是用于项目构建和依赖管理的,如果你用过maven的pom.xml就知道maven的配置和语法有点繁杂,gradle就简洁了很多。

gradle下载与安装

(1) 官网下载 目前最新版是gradle-7.2-rc-1-all.zip

(2) 下载后解压

(3) 环境变量配置

  • 在C盘之外的其他盘里新建一个文件夹用于存储将来所有下载的jar包
    (当然你也可以跳过这一步,如果你的C盘比较大)
    因为默认的gradle下载的依赖jar包会存储在C盘用户目录下的.gradle目录下,如果你的C盘比较小,依赖的jar包比较多的话,C盘将来会不够用。

    然后环境变量里新建 GRADLE_USER_HOME
    变量值就是刚才新建夹的文件目录
    gradle安装配置与使用_第1张图片

  • 新建环境变量GRADLE_HOME
    变量值是gradle解压后的目录
    gradle安装配置与使用_第2张图片

  • path环境变量里新增 %GRADLE_HOME%\bin
    gradle安装配置与使用_第3张图片

(4) 检测是否安装成功

cmd命令行输入 gradle -v

出现如下提示则为成功
gradle安装配置与使用_第4张图片

gradle使用示例,利用gradle建立两个模块

(1) idea的gradle设置中修改gradle的存储目录(如果上面你没有跳过那一步)和 gradle 的位置

gradle安装配置与使用_第5张图片
(2)新建gradle项目
gradle安装配置与使用_第6张图片
gradle安装配置与使用_第7张图片
构建完的项目目录如下:
gradle安装配置与使用_第8张图片
由于我要构建多模块,所以src目录没用可以删除。

我们可以看到build.gradle和setting.gradle 文件。
其中build.gradle里用于配置你的仓库地址(就是从哪里下载jar包),仓库地址可配置多个、项目用到的jar包等;

setting.gradle里用于配置项目里项目名称和包含哪些模块,如果你新加了模块idea会自动帮你修改setting.gradle文件。

(3) build.gradle配置

我们可以将仓库地址、插件、需要用到的依赖都在 build.gradle里配置。但都配置在一个文件里有点混乱,所以可以单独新建了一个 build-libraries.gradle 文件用于专门配置项目用到的依赖。
gradle安装配置与使用_第9张图片

所以最终 build.gradle示例如下:

plugins {
    id 'java'
}

group 'com.mytest'
version '1.0-SNAPSHOT'
description '开发'

allprojects {
    apply from: "${rootProject.projectDir}/build-libraries.gradle"
    repositories {
        // 先去本地仓库查找有没有对应jar
        mavenLocal()

        //自己搭建的Sonatype Nexus远程仓库1
        maven {
            credentials {
                username = "admin"
                password = "123456"
            }
            allowInsecureProtocol = true
            url 'http://127.0.0.1:8081/repository/maven-releases/'
        }

        //自己搭建的Sonatype Nexus远程仓库1
        maven {
            credentials {
                username = "admin"
                password = "123456"
            }
            allowInsecureProtocol = true
            url 'http://127.0.0.1:8081/repository/maven-central/'
        }

        //阿里云仓库
        maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
    }
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'idea'
    [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

    jar {
        manifest.attributes provider: 'gradle'
    }
}

test {
    useJUnitPlatform()
}

build-libraries.gradle 示例如下

library中前面的名字可以随便起,在后面模块引用的时候会用到

ext {
    fastjsonVersion = '1.2.58'
    jedisVersion = '2.7.1'
    commonsFileUploadVersion = '1.3.1'
    commonsCodeVersion = '1.11'
    httpclientVersion = '4.5.1'
    jodconverterVersion = '2.2.1'
    poiVersion = '3.11'
    commonsNetVersion = '3.6'
    commonsLangVersion = '2.4'

    library = [
            //juniti 用于单元测试
            testImplementation              : "org.junit.jupiter:junit-jupiter-api:5.7.0",
            testRuntimeOnly                 : "org.junit.jupiter:junit-jupiter-engine:5.7.0",

            //其他模块需要用到的依赖
            fastjson                        : "com.alibaba:fastjson:${fastjsonVersion}",
            jedis                           : "redis.clients:jedis:${jedisVersion}",
            commonsFileUpload               : "commons-fileupload:commons-fileupload:${commonsFileUploadVersion}",
            commonsCode                     : "commons-codec:commons-codec:${commonsCodeVersion}",
            httpclient                      : "org.apache.httpcomponents:httpclient:${httpclientVersion}",
            jodconverter                    : "com.artofsolving:jodconverter:${jodconverterVersion}",
            poi                             : "org.apache.poi:poi:${poiVersion}",
            poiXml                          : "org.apache.poi:poi-ooxml:${poiVersion}",
            commonsNet                      : "commons-net:commons-net:${commonsNetVersion}",
            commonsLang                     : "commons-lang:commons-lang:${commonsLangVersion}"
    ]
}

(4) 新建模块model1
gradle安装配置与使用_第10张图片
gradle安装配置与使用_第11张图片
新建完后可以看到model1中也有一个build.gradle,这个文件是表明这个模块需要用到哪些模块
gradle安装配置与使用_第12张图片
model1中的build.gradle:

plugins {
    id 'java'
}

group 'com.mytest'
version '1.0-SNAPSHOT'

dependencies {
    implementation library['testImplementation']
    implementation library['testRuntimeOnly']
    implementation library['fastjson']
    implementation library['jedis']
}

test {
    useJUnitPlatform()
}

注意:
如果你以前使用过低版本的 gradle,可能接触过 gradle 中的 compile、api来导入依赖。但在高版本中compile、api都不再推荐且被废除,所以要使用 implementation 导入。

(5) 新建模块model2
model2 中的 build.gradle:

plugins {
    id 'java'
}

group 'com.mytest'
version '1.0-SNAPSHOT'

dependencies {
    implementation library['testImplementation']
    implementation library['testRuntimeOnly']
    implementation library['fastjson']
    implementation project(':model1')//引入model1模块
}

test {
    useJUnitPlatform()
}

(6) 构建

此时项目目录如下
gradle安装配置与使用_第13张图片
点击右侧刷新按钮,开始刷新构建项目和下载需要的jar包:
gradle安装配置与使用_第14张图片

因为model2引用了model1,所以需要对model1构建编译下model1的代码,然后再点下刷新按钮
gradle安装配置与使用_第15张图片

你可能感兴趣的:(工具,gradle,Gradle,gradle安装配置,gradle使用,gradle多模块)