gradle-基础

gradle项目构建

compile, runtime, testCompile, and testRuntime 等在Gradle 7.0以后移除了,
我们需要用
implementation, runtimeOnly, testImplementation, and testRuntimeOnly 替代



/**
 * 指定所使用的仓库, mavenCentral() 表示使用中央仓库,此刻项目中所需要的 jar 包都会默认从中央仓库下载到指定目录
 */
repositories {
    maven { url 'https://maven.aliyun.com/repository/public/' }
    maven { url 'https://maven.aliyun.com/repository/spring/'}
    mavenCentral()
}



/**
 * gradle工程所有的jar包的坐标都在 dependencies 属性内放置
 * 每一个 jar 包的坐标都有三个基本元素组成
 * group name version
 * testImplementation 表示该 jar 包在测试的时候起作用,该属性为 jar 包的作用域
 * 在gradle中添加坐标的时候,都需要带上 jar 包的作用域
 *
 * compile, runtime, testCompile, and testRuntime 等在Gradle 7.0以后移除了,我们需要用
 * implementation, runtimeOnly, testImplementation, and testRuntimeOnly 替代。
 */
dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
    // https://mvnrepository.com/artifact/org.springframework/spring-context
    implementation group: 'org.springframework', name: 'spring-context', version: '5.3.15'
    // gradle short 简写 https://mvnrepository.com/artifact/org.springframework/spring-context
    // implementation 'org.springframework:spring-context:5.3.15'
}


gradle项目目录结构

Gradle项目默认目录结构和Maven项目的目录结构一致,都是基于约定大于配置
在这里插入图片描述

grade源和仓库配置

  • gradle 下载源设置
    Gradle自带的Maven源地址是国外的,该Maven源在国内的访问速度是很慢的,除非使用特别的手段。一般情况下,我们建议使用国内的第三方开放的Maven源或企业内部自建的Maven源

可以在gradle的init.d目录下创建以 .gradle 结尾的文件。 .gradle文件可以实现在 build 开始之前执行,所以可以在这个文件配置一些想预先加载的操作。

init.d 目录下创建 init.gradle 文件
在这里插入图片描述



allprojects {
    repositories {
        // 本地仓库,地址是maven本地仓库地址
        mavenLocal()
 
        // 阿里云仓库
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/spring' }
        maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/releases' }
        maven { url 'https://maven.aliyun.com/repository/grails-core' }
        maven { url 'https://maven.aliyun.com/repository/mapr-public' }
        mavenCentral()
    }
    buildscripts {
         repositories {
            // 本地仓库,地址是maven本地仓库地址
            mavenLocal()
   
            // 阿里云仓库
            maven { url 'https://maven.aliyun.com/repository/central' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            maven { url 'https://maven.aliyun.com/repository/jcenter' }
            maven { url 'https://maven.aliyun.com/repository/spring' }
            maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
            maven { url 'https://maven.aliyun.com/repository/releases' }
            maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/releases' }
            maven { url 'https://maven.aliyun.com/repository/grails-core' }
            maven { url 'https://maven.aliyun.com/repository/mapr-public' }
            mavenCentral()
        }
    }
}


启用 init.gradle 文件的方法

1.在命令行指定文件,例如 gradle --init-script yourdir/init.gradle -q taskName 
2.把 init.gradle 文件放到 USER_HOME/.gradle/ 目录下
3.把以 .gradle 结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下
4.把以 .gradle 结尾的文件放到 GRADLE_HOME/init.d/ 目录下
  • gradle 仓库设置
    如果想让gradle下载的文件跟maven仓库在同一个位置,需要设置环境变量 GRADLE_USER_HOME=maven仓库所在位置

Wrapper 包装器

Gradle Wrapper 实际上就是对 Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本Gradle的问题。例如:把自己的代码共享给他人使用,可能出现如下情况:

1.对电脑没有安装 gradle
2.对方电脑安装过 gradle ,但是版本太旧了

这时候,我们可以考虑使用 Gradle Wrapper 了,这也是官方建议使用 Gradle Wrapper的原因。实际上有了 Gradle Wrapper 之后,我们本地是可以不配置 Gradle 的,下载 Gradle 项目后,使用 Gradle 项目自带的 Wrapper 操作也是可以的。

如何使用 GradleWrapper
项目中的 gradlew 、gradlew.bat 脚本用的就是 Wrapper 中规定的 gradle 版本,
我们也可以在终端执行 gradlew 指令时,指定一些参数来控制 wrapper 的生成。

参数名说明
–gradle-version用于指定使用的gradle版本
–gradle-distribution-url用于指定下载 gradle发行版的url地址

gradle-wrapper.properties

1.zipStoreBase 和 zipStorePath 组合在一起,是下载的 gradle-3.1-bin.zip 所存放的位置。2.zipStorePath 是 zipStoreBase 指定的目录下的子目录。
3.distributionBase 和 distributionPath 组合在一起,是解压 gradle 之后的文件的存放位置。
4.distributionPath 是 distributionBase 指定的目录下的子目录。
5.distributionUrl 是要下载的 gradle 的地址,使用哪个版本的 gradle
字段名说明
distributionBase下载的Gradle压缩包解压后存储的主目录
distributionPath相对于 distributionBase 的解压后的Gradle压缩后的路径
zipStoreBase同 distributionBase, 只不过是存放zip压缩包的
zipStorePath同 distributionPath, 只不过是存放zip压缩包的
distributionUrlGradle发行版压缩包的下载地址

GradleWrapper执行流程

1.当我们第一次执行 .gradlew build 命令的时候,gradlew 会读取 gradle-wrapper.properties 文件的配置信息
2.准确的将指定版本的gradle下载并解压搭配指定位置(GRADLE_USER_HOME目录下的wrapper/dists目录中)
3.并构建本地缓存(GRADLE_USER_HOME目录下的 caches 目录中),下载再使用相同版本的gradle就不用下载了
4.之后执行 ./gradlew 所有命令都是使用指定的 gradle 版本

在这里插入图片描述

gradle常用指令

常用gradle指令作用
gradle init初始化 gradle 项目
gradle clean清空build目录
gradle classes编译业务代码和配置文件
gradle test编译测试代码,生成测试报告
gradle build构建项目
gradle build -x test跳过测试构建项目

需要注意的是:gradle指令要在含有 build.gradle 的目录执行

idea 创建 gradle应用缺少目录


task createDirs {
    sourceSets*.java.srcDirs*.each {
        it.mkdirs()
    }
    sourceSets*.resources.srcDirs*.each{
        it.mkdirs()
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值