当前位置: 首页 > news >正文

Android——Gradle插件gradle-wrapper.properties

一、Android Studio版本,Android Gradle插件版本,Gradle版本

Android Studio 通过Android Gradle插件 使用 Gradle来构建代码;

Android Studio每次升级后, Android Gradle 插件自动更新,对应的Gradle版本也会变动;

因此会产生如下对应关系:

(1)Android Studio版本与Android Gradle插件版本对应关系

具体见官网描述:Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers

如图所示

(2)Android Gradle 插件与Gradle版本对应关系

具体看官网描述:Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers

如下图所示

(3)android studio Gradle插件配置位置

  • 方式1:在项目根目录下build.gradle文件中进行配置
  • 方式2:android studio中setting下project structure面板中project中设置

二、通过gradle-wrapper实现Gradle插件与Gradle版本适配

Gradle Wrapper 是 Gradle 的一种包装器,使得我们可以在不安装 Gradle 的情况下运行和构建我们的项目;

经常需要修改 gradle-wrapper.properties 配置文件 , 用于匹配 Android Gradle 插件版本 与 Gradle 版本 的对应关系 ;

(1)Gradle Wrapper 所在目录

gradle-wrapper.properties 文件通常位于项目根目录下的 /gradle/wrapper/ 目录中,是一个隐藏文件。为了避免误操作,建议不要直接修改该文件,而是通过 Android Studio 提供的 Gradle 配置界面来修改 Gradle Wrapper 的设置。

(2)gradle-wrapper.properties配置属性文件说明

gradle-wrapper.properties 文件的作用在于为 Gradle Wrapper 提供必要的配置信息,以便 Gradle Wrapper 自动下载、安装和配置 Gradle 运行环境。通过修改 gradle-wrapper.properties 文件中的设置,我们可以控制 Gradle 版本、下载源、存储路径等参数,以定制化 Gradle 构建过程和环境。

  • distributionUrl:指定了 Gradle 发布版本的下载地址,Gradle Wrapper 将从该地址自动下载指定版本的 Gradle。
  • distributionSha256Sum:指定了 distributionUrl 对应 Gradle 版本的 SHA-256 校验和,用于校验下载的 Gradle 是否完整且未被篡改。
  • zipStoreBase和zipStorePath:指定了 Gradle Zip 包的存储路径,在第一次运行 Gradle Wrapper 时,Gradle 将会从 distributionUrl 下载 Gradle Zip 包,并解压到这个路径下。
  • distributionType:指定了 Gradle 的分发类型,可选值有 "bin" 和 "all"(默认值)。

 GRADLE_USER_HOME 没有配置的话,默认是 ~/.gradle

(3)解决gradle国内下载失败,离线安装包配置问题

如果:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

由于国内无法下载,可以通过迅雷(牛逼,浏览器下载不了,它可以),下载下来gradle-7.4-all.zip,可以自己放在电脑某个文件夹下。然后修改如下radle-wrapper.properties配置文件即可实现

#Sat Nov 12 21:00:23 CST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=file:///D:/GradleOffLinePackage/gradle-7.4-all.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
distributionType=all

(三)gradle构建目录

在android studio项目下gradle的目录

├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle

(1)build.gradle

build.gradle 是对某个项目的配置。配置 jar 依赖关系,定义或者引入 task 去完成项目构建。

(2)gradle-wrapper-properties

 GRADLE_USER_HOME 没有配置的话,默认是 ~/.gradle

zipStoreBase 和 zipStorePath 定义了下载的 gradle (gradle-7.6-bin.zip) 存储的本地路径。
distributionBase 和 distributionPath 定义下载的 gradle 解压的本地目录。

wrapper 定义项目依赖那个版本的 gradle,如果本地 distributionPath 没有对应版本的 gradle,会自动下载对应版本的 gradle。

gradle-wrapper.jar 会判断是否下载 wrapper 配置的 gradle,并且将传递参数给下载的 gradle,并运行下载的 gralde 进行构建项目。

(3)gradle.properties

主要用于配置构建过程中用到的变量值。也可以配置一些 gradle 内置变量的值,用于修改默认构建行为。

org.gradle.logging.level=quiet
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xms512m -Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.jvmargs 用来配置 Daemon 的 JVM 参数,默认值是 -Xmx512m "-XX:MaxMetaspaceSize=384m"
当我们的项目比较大的时候,可能会由于 JVM 堆内存不足导致构建失败,就需要修改此配置。
org.gradle.logging.level 调整 gradle 的日志级别。参考 gradle logging 选择想要的日志级别。

(4)gradlew和gradlew.bat

gradlew 是 macos 和 linux 系统下。
gradlew.bat 是 windows 系统下使用的

(5)settings.gradle

settings.gradle 主要用于配置项目名称,和包含哪些子项目。
也可以用于配置插件的依赖版本(不会应用到项目中去,除非项目应用这个插件)和插件下载的

 

http://www.lryc.cn/news/231297.html

相关文章:

  • iOS应用加固方案解析:ipa加固安全技术全面评测
  • 过滤器模式 rust和java的实现
  • Feature Pyramid Networks for Object Detection(2017.4)
  • Python3基础模块 random
  • ubuntu安装pgsql16
  • 数据管理70个名词解析
  • 线性代数本质系列(二)矩阵乘法与复合线性变换,行列式,三维空间线性变换
  • Linux-CentOS重要模块
  • posix定时器的使用
  • 安科瑞煤矿电力监控系统的研究与应用
  • 高教社杯数模竞赛特辑论文篇-2023年A题:基于机理分析法的定日镜场优化设计模型(附获奖论文及MATLAB代码实现)
  • 缩点+图论路径网络流:1114T4
  • Go语言fyne开发桌面应用程序-环境安装
  • JavaWeb——CSS3的使用
  • AR导览小程序开发方案
  • 继承、多态
  • 贪吃蛇小游戏代码
  • Python数据容器(字典)
  • 餐饮展示小程序的作用是什么
  • 33、Flink 的Table API 和 SQL 中的时区
  • Origin:科研绘图与学术图表绘制从入门到精通
  • 腾讯云标准型SA4服务器AMD处理器性能测评
  • LeetCode 2656. K 个元素的最大和:一次遍历(附Python一行版代码)
  • element-ui中Form表单使用自定义验证规则
  • android源码添加adb host支持
  • 学习c#的第二天
  • CodeWhisperer 使用经验分享
  • 数据结构与算法之美学习笔记:18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的?
  • 解决java发邮件错误javax.net.ssl.SSLHandshakeException: No appropriate protocol
  • 杭电oj 2035 人见人爱A^B C语言