Android——Gradle插件gradle-wrapper.properties

news2025/1/13 14:23:59

一、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.coloradmin.cn/o/1198071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wsl [Ubuntu20.04.6] 安装 Hadoop

文章目录 1.安装WSL2.安装Java安装Hadoop3.3配置文件1.修改hadoop-env.sh2.修改core-site.xml3.修改hdfs-site.xml ssh启动 1.安装WSL 重启电脑 管理员打开powershell PS C:\windows\system32> wsl --list --online PS C:\windows\system32> wsl --install -d Ubuntu-2…

Linux技能篇-yum源搭建(本地源和公网源)

文章目录 前言一、yum源是什么?二、使用镜像搭建本地yum源1.搭建临时仓库第一步:挂载系统ios镜像到虚拟机第二步:在操作系统中挂载镜像第三步:修改yum源配置文件 2.搭建本地仓库第一步:搭建临时yum源来安装httpd并做文…

什么是Amazon Simple Email Service(SES 群发邮件)

Amazon Simple Email Service(Amazon SES)让您可以使用 Amazon SES API 或 SMTP 接口放心地联络到客户,而无需使用本地简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)电子邮件服务器。 目录 什么是…

[头歌]第1关:动态学生信息管理

题目: C 面向对象 _ STL 的应用 (educoder.net) 考点: 1.自定义排序 bool cmp 2.如何使用find和erase来找到学生类里面的指定姓名的人并将其从动态数组中删除。 3.find要找的是学生类里面的成员变量而非单纯的直接找值,应如何实现 &…

计算机毕业设计 基于SpringBoot的驾校管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【GIT】git分支命令,使用分支场景介绍git标签介绍,git标签命令,git标签使用的场景git查看提交历史

目录 一,git分支命令,使用分支场景介绍 二,git标签介绍,git标签命令,git标签使用的场景 三,git查看提交历史 前言: 今天我们来聊聊关于Git 分支管理。几乎每一种版本控制系统都以某种形式支持…

两数之和问题

题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

Leetcode—9.回文数【简单】

2023每日刷题&#xff08;二十六&#xff09; Leetcode—9.回文数 直接法实现代码 bool isPalindrome(int x) {int len 0;int arr[10] {0};int i 0;if(x < 0) {return false;}while(x) {arr[i] x % 10;x / 10;len; }for(i 0; i < len / 2; i) {if(arr[i] ! arr[le…

如何正确使用GPT工具

引言 在快速发展的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;已成为科研领域的一个不可或缺的工具。特别是像ChatGPT这样的AI聊天机器人&#xff0c;它通过高效的语言模型和深度学习算法&#xff0c;为科研工作者提供了前所未有的辅助。从文献搜索到数据分析&…

一文了解游戏行业(数据分析)

一.概况 1.基本术语 游戏行业基础术语——持续更新ing... 2.产业链 包括游戏开发&#xff0c;发行和销售等环节 游戏开发&#xff1a;上游环节&#xff1b;是游戏产业链的核心环节&#xff0c;包括游戏策划&#xff0c;美术设计&#xff0c;程序开发等&#xff0c;是决定游…

Day27力扣打卡

打卡记录 情侣牵手&#xff08;并查集&#xff09; 链接 class Solution:def minSwapsCouples(self, row: List[int]) -> int:def find(x: int) -> int:if p[x] ! x:p[x] find(p[x])return p[x]n len(row) >> 1p list(range(n))for i in range(0, len(row), 2…

【多线程 - 01、概述】

进程 几乎所有的操作系统都支持进程概念&#xff0c;进程是处于运行过程中的程序&#xff0c;进程是操作系统中进行资源分配的基本单位。 三个基本特征 独立性&#xff1a;指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。而对于未建立任何进程的程序&…

[PHP]Kodexplorer可道云 v4.47

KodExplorer可道云&#xff0c;原名芒果云&#xff0c;是基于Web技术的私有云和在线文件管理系统&#xff0c;由上海岱牧网络有限公司开发&#xff0c;发布于2012年6月。致力于为用户提供安全可控、可靠易用、高扩展性的私有云解决方案。 用户只需通过简单环境搭建&#xff0c;…

玩了个锤子游戏小程序搭建流程:探索深度与逻辑的结合

随着移动互联网的普及&#xff0c;小程序已经成为了越来越多用户的选择。在这个背景下&#xff0c;玩了个锤子游戏小程序应运而生&#xff0c;它为用户提供了一个全新的游戏体验。那么&#xff0c;如何搭建这样一个小程序呢&#xff1f;本文将为大家详细介绍玩了个锤子游戏小程…

数据库 关系数据理论

问题 数据冗余更新异常插入异常删除异常 一个好的模式应当不会发生插入异常、删除异常和更新异常&#xff0c;数据冗余应尽可能少 数据依赖 定义&#xff1a;一个关系内部属性与属性之间的一种约束关系&#xff08;该约束关系是通过属性间值的相等与否体现出来数据间相关联…

Goland报错:Cannot resolve symbol ‘XXX‘。一键解决该问题。

Goland报错&#xff1a;Cannot resolve symbol XXX。一键解决该问题。 问题是&#xff1a;Cannot resolve symbol XXX解决方法是&#xff1a; 问题是&#xff1a;Cannot resolve symbol ‘XXX’ 问题的背景&#xff1a; 我写了两个包&#xff0c;分别是main 、utils包。main包…

Python----元组的定义与使用

1、为什么需要元组 思考&#xff1a;如果想要存储多个数据&#xff0c;但是这些数据是不能修改的数据&#xff0c;怎么做&#xff1f; 首先&#xff0c;列表可以一次性存储多个数据&#xff0c;但是列表中的数据允许更改。 相关链接&#xff1a;Python--列表及其应用场景-CS…

封装

文章目录 概念优点访问限定符封装的必要性代码块普通代码块构造块静态块 概念 在面向对象中&#xff0c;封装是指对于某个对象&#xff0c;Java隐藏对象的属性和方法的实现细节&#xff0c;仅对外公开接口&#xff0c;控制在程序中属性的读取和修改的访问级别。适当的封装可以…

KVM虚拟机迁移原理与实践

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