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 主要用于配置项目名称,和包含哪些子项目。
也可以用于配置插件的依赖版本(不会应用到项目中去,除非项目应用这个插件)和插件下载的

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/134388.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MybatisPlus】条件构造器、自定义SQL、Service接口

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 MybatisPlus 一、条件构造器1.1 基于QueryW…

MemcachedRedis构建缓存服务器 (数据持久化,主从同步,哨兵模式)

Memcached/redis是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web等应用的速度、 提高可扩展性。降低数据库读的压力 Nsql的优点:高可扩展性,分布式计算,低成本,…

AI绘画神器DALLE 3的解码器:一步生成的扩散模型之Consistency Models

前言 关于为何写此文,说来同样话长啊,历程如下 我司LLM项目团队于23年11月份在给一些B端客户做文生图的应用时,对比了各种同类工具,发现DALLE 3确实强,加之也要在论文100课上讲DALLE三代的三篇论文,故此文…

javax.management.InstanceNotFoundException: Catalina:type=Server错误的解决

软件: JDK 1.8 Tomcat 8.5.66 IDEA 2019.3.3 问题:启动IDEA新建一Web Application项目,设置好项目运行,结果发现提示: 提示:Application Server was not connected before run configuration stop, rea…

【AI】生成模型变得简单:了解它们的工作原理和不同类型

什么是生成模型? 在不断发展的人工智能领域,生成模型已成为人工智能技术最具吸引力和创造力的方面之一。这些模型是创意人工智能的核心,它们有能力生成各种内容,从栩栩如生的图像和引人入胜的文本到令人着迷的音乐和创新的艺术作…

linux入门---线程池的模拟实现

目录标题 什么是线程池线程的封装准备工作构造函数和析构函数start函数join函数threadname函数完整代码 线程池的实现准备工作构造函数和析构函数push函数pop函数run函数完整的代码 测试代码 什么是线程池 在实现线程池之前我们先了解一下什么是线程池,所谓的池大家…

【postgresql】CentOS7 安装pgAdmin 4

CentOS7 安装PostgreSQL Web管理工具pgAdmin 4。 pgAdmin 是世界上最先进的开源数据库 PostgreSQL 最受欢迎且功能丰富的开源管理和开发平台。 下载地址: pgadmin-4 download pgAdmin 4分为桌面版和服务器版。 我们这里部署服务器版本。 安装RPM包。 安装源 s…

【数据结构】树与二叉树(十一):二叉树的层次遍历(算法LevelOrder)

文章目录 5.2.1 二叉树二叉树性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点,其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

最长有效括号

给你一个只包含 ‘(’ 和 ‘)’ 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 class Solution {public int longestValidParentheses(String s) {Stack<Integer> st new Stack<Integer>();int ans 0;for(int i 0…

Linux C 时间编程

时间编程 Linux中时间相关命令时间编程time  获取当前的时间gmtime  获取当前日期时间localtime  获取本地时间日期asctime  规格时间结构体为字符串 Linux中时间相关命令 1&#xff09;date&#xff1a;打印当前的系统时间。 2&#xff09;date -s 20231111&#xff…

封神教程:腾讯云3年轻量应用服务器老用户购买方法

腾讯云轻量应用服务器特价是有新用户限制的&#xff0c;所以阿腾云建议大家选择3年期轻量应用服务器&#xff0c;一劳永逸&#xff0c;免去续费困扰。腾讯云轻量应用服务器3年优惠可以选择2核2G4M和2核4G5M带宽&#xff0c;3年轻量2核2G4M服务器540元&#xff0c;2核4G5M轻量应…

Linux 进程优先级 | 环境变量

目录 进程优先级 基本概念 认识优先级 PRI and NI NI值的范围 查看进程优先级 用top命令更改已存在进程的nice&#xff1a; 如何修改优先级 其他概念 环境变量 基本概念 常见环境变量 和环境变量相关的命令 环境变量的组织方式 通过代码如何获取环境变量 环境变量通…

arcgis基础篇--实验

一、绘制带空洞的面要素 方法一&#xff1a;先绘制出一个面区域&#xff0c;然后在面上再绘制一个面区域代表面洞&#xff0c;两者位于同一个图层内&#xff0c;选中代表面洞的区域&#xff0c;选择【编辑器】-【裁剪】工具&#xff0c;将面裁剪出一个洞&#xff0c;随后删除代…

SpringBoot--中间件技术-2:整合redis,redis实战小案例,springboot cache,cache简化redis的实现,含代码

SpringBoot整合Redis 实现步骤 导pom文件坐标 <!--redis依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>yaml主配置文件&#xff0c;配置…

基于python+TensorFlow+Django卷积网络算法+深度学习模型+蔬菜识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 介绍了TensorFlow在图像识别分类中的应用&#xff0c;并通过相关代码进行了讲解。通过TensorFlow提供的工具和库&am…

K8S知识点(八)

&#xff08;1&#xff09;实战入门-Label 通过标签实现Pod的区分&#xff0c;说白了就是一种标签选择机制 可以使用命令是否加了标签&#xff1a; 打标签&#xff1a; 更新标签&#xff1a; 筛选标签&#xff1a; 修改配置文件&#xff0c;重新创建一个pod 筛选&#xff1…

Python---split()方法 + join()方法

split()方法 split 英 /splɪt/ v. 分裂&#xff0c;使分裂&#xff08;成不同的派别&#xff09;&#xff1b;分开&#xff0c;使分开&#xff08;成为几个部份&#xff09;&#xff1b;&#xff08;使&#xff09;撕裂&#xff1b;分担&#xff0c;分享&#xff1b;划破&…

kubeadm部署k8s及高可用

目录 CNI 网络组件 1、flannel的功能 2、flannel的三种模式 3、flannel的UDP模式工作原理 4、flannel的VXLAN模式工作原理 5、Calico主要组成部分 6、calico的IPIP模式工作原理 7、calico的BGP模式工作原理 8、flannel 和 calico 的区别 Kubeadm部署k8s及高可用 1、…

如何用 GPTs 构建自己的知识分身?(进阶篇)

&#xff08;注&#xff1a;本文为小报童精选文章&#xff0c;已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费&#xff09; 有了这些改进&#xff0c;你可以快速判断 GPT 助手给出的答案是真实还是「幻觉」了。 问题 在《如何用自然语言 5 分钟构建个人知识库应用&am…

KVM虚拟机迁移原理与实践

虚拟机迁移 迁移(migration)包括系统整体的迁移和某个工作负载的迁移&#xff0c;系统整体迁移是将系统上的所有软件&#xff0c;包括操作系统&#xff0c;完全复制到另一台物理硬件机器上&#xff0c;而工作负载迁移仅仅迁移特定的工作负载。 虚拟化技术的出现&#xff0c;丰…