Gradle的使用教程 -Gradle通过mavenLocal()指向本地仓库 -Gradle依赖包的存储位置

文章目录

  • Gradle
    • Gradle项目管理工具
    • Gradle安装(Windows)
      • 1.下载解压版
      • 2.配置环境变量
      • 3.验证是否配置成功
    • Gradle工程目录
    • Gradle在idea中使用
    • groovy编程语言
      • 输出
      • 定义变量
      • 闭包(无参数)
      • 闭包(有参数)
    • Gradle管理jar包
      • build.gradle文件的基本内容
      • 设置gradle本地缓存路径
        • 配置环境变量
        • 修改build.gradle文件
      • 使用maven本地仓库
        • 配置环境变量
        • 修改build.gradle文件
      • 其它可用的远程仓库地址
      • 关于gradle中jar包引用的说明
    • Gradle构建项目
    • 参考

Gradle

Gradle项目管理工具

基于Groovy的特定领域语言来声明项目设置

Gradle安装(Windows)

1.下载解压版

  • 版本列表:https://services.gradle.org/distributions/

  • v6.5:https://downloads.gradle-dn.com/distributions/gradle-6.5-bin.zip(用迅雷下载可能会快些)

2.配置环境变量

  • 变量名:GRADLE_HOME

    变量值:D:\work\gradle-6.5(gradle安装目录)

  • 变量名:Path(编辑)

    变量值:%GRADLE_HOME%\bin(增加)

3.验证是否配置成功

cmd输入命令:gradle -v

Gradle工程目录

gradle-demo
|---src
|---|---main
|---|---|---java(放置正式代码目录)
|---|---|---resources(放置正式配置文件目录)
|---|---|---webapp(放置页面元素)
|---|---test
|---|---|---java(放置单元测试代码目录)
|---|---|---resources(放置测试配置文件目录)
|---build.gradle
|---settings.gradle

Gradle在idea中使用

  1. 创建gradle项目
  2. 创建完成后更改gradle配置(Settings),选择自己安装的gradle
  3. groovy语言编辑器,Tools - Groovy Console

groovy编程语言

输出

//介绍groovy编程语言
println("hello groovy"); // idea快捷键sout
println("hello groovy") // 可以省略最后的分号
println "hello groovy" // 可以省略括号

定义变量

// groovy 中定义变量
// def 是弱类型,groovy会自动根据情况来给变量赋予对应的类型
def i = 18;
println i;
def s = "xiaoming"
println s

// 定义一个集合类型
def list = ['a','b']
// 往list中添加元素
list << 'c'
// 取出list中第3个元素
println list.get(2)

// 定义一个map
def map = ['key1':'value1','key2':'value2']
// 向map中添加键值对
map.key3 = 'value3'
// 打印出key3的值
println map.get('key3')

闭包(无参数)

// groovy 中的闭包
// 什么是闭包?闭包其实就是一段代码块。在gradle中,我们主要是把闭包当参数来使用
// 定义一个闭包
def b1 = {
    println "hello b1"
}
// 定义一个方法,方法里面需要闭包类型的参数
def method1(Closure closure){
    closure()
}
// 调用方法method1
method1(b1)

闭包(有参数)

//定义一个闭包,带参数
def b2 = {
    v ->
        println "hello ${v}"
}
// 定义一个方法,方法里面需要闭包类型的参数
def method2(Closure closure){
    closure("xiaoma")
}
// 调用方法method2
method2(b2)

Gradle管理jar包

build.gradle文件的基本内容

plugins {
    id 'java'
}
// web工程
apply plugin: 'war'

group 'xin.yangshuai'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

/*
 * 指定所使用的仓库
 * mavenCentral()表示使用中央仓库,此刻项目中所需要的jar都会默认从中央仓库下载到本地指定目录
 */
repositories {
    //先从本地仓库寻找依赖,如果没有再从中央仓库下载。
    mavenLocal()
    mavenCentral()
}
/*
 * gradle工程所有的jar包的坐标都在dependencies属性内放置
 * 每一个jar包的坐标都有三个基本元素组成
 * group,name,version
 * testCompile 表示该jar包在测试的时候起作用,该属性为jar包的作用域
 * 我们在gradle里面添加坐标的时候都要带上jar包的作用域
 * providedCompile 编译阶段起作用,运行阶段不起作用
 */
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    // https://mvnrepository.com/artifact/org.springframework/spring-context
    compile group: 'org.springframework', name: 'spring-context', version: '5.2.6.RELEASE'

}

设置gradle本地缓存路径

配置环境变量

  • 变量名:GRADLE_USER_HOME

    变量值:D:\work\gradleCK

    (可以直接在idea中指定位置)

修改build.gradle文件

repositories {
    mavenCentral()
}

当我们使用远程仓库(mavenCentral()等)时,jar包会保存到GRADLE_USER_HOME\caches\modules-2\files-2.1\文件夹下

使用maven本地仓库

配置环境变量

  • 变量名:M2_HOME

    变量值:D:\work\apache-maven-3.6.3(maven安装路径)

修改build.gradle文件

repositories {
    mavenLocal()
}

当我们使用maven本地仓库(mavenLocal())时,jar包会直接利用本地maven仓库,而不会去下载

参考:https://blog.csdn.net/yzpbright/article/details/89001633?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

注意: gradle寻找本地maven仓库位置的策略

USER_HOME/.m2/settings.xml >> M2_HOME/conf/settings.xml >> USER_HOME/.m2/repository

1、我们一般在maven的安装目录/conf/settings.xml(也就是我们配置的maven环境变量)中配置本地仓库位置,所以我们需要让gradle选择该路径,从而使用我们配置的maven本地仓库

2、gradle先寻找USER_HOME/.m2/settings.xml,所以我们要删掉该文件(其实也可以将安装目录下的settings.xml复制过来)

3、maven环境变量我们习惯配置成MAVEN_HOME,但是gradle寻找的是M2_HOME,所以我们需要配置M2_HOME环境变量

参考:https://blog.csdn.net/qq_23085893/article/details/79633934

验证: 切换使用mavenCentral()和mavenLocal(),查看jar包引用地址

其它可用的远程仓库地址

repositories {
    mavenLocal()
    // 阿里
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
    mavenCentral()
}

关于gradle中jar包引用的说明

如果我们在repositories{}中先配置mavenLocal()(maven本地仓库),再配置mavenCentral()(远程仓库),那么gradle引用jar的位置就会出现两个,如果本地maven仓库中存在则直接引用本地maven仓库中的jar包,如果本地maven仓库中不存在,则会连接远程仓库地址,将jar包下载到gradle本地缓存地址,并且引用该地址下的jar包。

注意: gradle并不会向本地maven仓库中下载jar包,gradle缓存路径下的jar包与maven本地仓库中的jar包的格式也有区别。

参考:https://blog.csdn.net/feinifi/article/details/81458639

验证: 查看项目中不同jar包的引用地址(maven仓库中存在的jar包和不存在的jar包,观看其引用的地址)

Gradle构建项目

参考

https://www.bilibili.com/video/BV1iW411C7CV?from=search&seid=4133834168566660009

你可能感兴趣的:(java,gradle,gradle,java)