【Android-Gradle】多模块开发中,定义额外属性(全局变量),穿梭在不同的Gradle文件中(kotlin脚本版)

其他信息可以参考官网:https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html#org.gradle.api.plugins.ExtraPropertiesExtension

但是本文讲一些简单应用:

需求1:根目录gradle文件定义一个全局变量

build.gradle.kts(根目录)

1.1 添加额外属性:var isRelease by extra(false)// 其中 key = “isRelease” , value = false
1.2 改写属性值:project.setProperty(“isRelease”,true)
1.3 读取属性值:project.properties[“isRelease”] // 或者project.ext.properties[“isRelease”] 都可以

需求2:在子模块的中读写上面那个变量:

2.1 改写属性值:project.setProperty(“isRelease”,true)
2.2 读取属性值:project.properties[“isRelease”] // 注意:project.ext.properties["isRelease"] 只能读取本文件的额外属性,不能读取根目录下的

实战示例:

1、在安卓根目录创建 build2.gradle.kts 文件
写入:

var isRelease by extra(false)//添加额外的属性

2、在根项目的 build.gradle.kts 文件中:

apply(from = "build2.gradle.kts") // 应用另外一个文件的配置// 然后你也可以再此进行读写:
//project.setProperty("isRelease",true)// 测试——修改其中的属性
//println(project.ext.properties)// 输出全部已经定义的key-value,其中会包含刚刚加入的:isRelease=true
println("isRelease value = "+project.properties["isRelease"])// 输出这个key的 value:true,也是读取额外属性的方法————可以在其他子文件中读取
//println("isRelease?: "+project.ext.properties.containsKey("isRelease"))// 检查是否包含某个key:true

3、上面养好了根项目之后,就可以在子项目中的 build.gradle.kts 读写
注意点就是:project.propertiesproject.ext.properties 读取结果(可以自行打印测试)

参考以上代码即可

结束。

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

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

相关文章

分享71个节日PPT,总有一款适合您

分享71个节日PPT,总有一款适合您 71个节日PPT下载链接:https://pan.baidu.com/s/1v4_fHplsf_hOJQbNPVUudg?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…

区块链金融科技:技术融合与挑战应对【文末送书-16】

文章目录 前言一.区块链与金融科技的融合:革新金融格局的技术之光1.1区块链技术简介1.2 区块链在金融科技中的应用 二.智能合约2.1 去中心化金融(DeFi)2.2区块链对金融科技的影响2.3数据安全性 三.区块链与金融科技【文末送书-16】3.1 粉丝福…

leetcode 算法 67.二进制求和(python版)

需求 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a “11”, b “1” 输出:“100” 示例 2: 输入:a “1010”, b “1011” 输出:“10101” 代码 class Solution…

如何区分流量控制和拥塞控制?

流量控制属于通信双方协商;拥塞控制涉及通信链路全局。 流量控制需要通信双方各维护一个发送窗、一个接收窗,对任意一方,接收窗大小由自身决定,发送窗大小由接收方响应的TCP报文段中窗口值确定;拥塞控制的拥塞窗口大小…

安全SCDN有什么作用

当前网络安全形势日益严峻,网络攻击事件频发,攻击手段不断升级,给企业和个人带来了严重的安全威胁。在这种背景下,安全SCDN作为一种网络安全解决方案,受到了广泛的关注。那么,安全SCDN真的可以应对网络攻击…

【leetcode题解C++】77.组合 and 216.组合总和III and 17.电话号码的字母组合

77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ] 示例 2: 输入&#xff1a…

在 CentOS 7上使用 Apache 和 mod_wsgi 部署 Django 应用的方法

简介 Django 是一个强大的 Web 框架,可以帮助您快速启动 Python 应用程序或网站。Django 包括一个简化的开发服务器,用于在本地测试代码,但对于任何与生产相关的事情,都需要一个更安全和功能强大的 Web 服务器。 在本指南中&…

【Vitis】基于C++函数开发组件的步骤

目录 基本步骤 关键领域 • 硬件接口: 任务级并行度: 存储器架构: 微观级别的最优化: 基本步骤 1. 基于 设计原则 建立算法架构。 2. (C 语言仿真) 利用 C/C 语言测试激励文件验证 C/C 代码的逻辑。…

Vue 3D轮播插件vue-carousel-3d(禁止滑动方法)

video 1.安装 npm install -S vue-carousel-3d2.在main.js全局引入: import Carousel3d from vue-carousel-3d; Vue.use(Carousel3d);3.或者直接在使用页面引入省略了上一步 import { Carousel3d, Slide } from vue-carousel-3d components: {Carousel3d,Slide },…

两个线程实现同步代码示例

#include<myhead.h>//1、定义无名信号量 sem_t sem;//定义生产者线程 void *task1(void *arg) {int num 5;while(num--){sleep(1);printf("我生产了一辆汽车\n");//4、释放资源sem_post(&sem);}//退出线程pthread_exit(NULL); }//定义消费者线程 void *ta…

win10没有调节亮度选项怎么办?

最近新装了win10&#xff0c;装机后”设置“-”显示“里面没有可以调节亮度的地方&#xff0c;这里记录一下解决方案。 解决方案 按WinX键&#xff0c;选择设备管理器&#xff0c;点击”显示适配器“&#xff0c;我这里默认是只有”Microsoft 基本显示适配器“&#xff0c;没有…

c++入门学习④——对象的初始化和清理

目录 对象的初始化和清理&#xff1a; why? 如何进行初始化和清理呢&#xff1f; 使用构造函数和析构函数​编辑 构造函数语法: 析构函数语法: 构造函数的分类&#xff1a; 两种分类方式&#xff1a; 三种调用方法&#xff1a; 括号法&#xff08;默认构造函数调用&…

UE中对象创建方法示例和类的理解

对象创建方法示例集 创建Actor示例 //创建一个护甲道具 AProp* armor GetWorld()->SpawnActor<AProp>(pos, rotator); 创建Component示例 UCapsuleComponent* CapsuleComponent CreateDefaultSubobject<UCapsuleComponent>(TEXT("CapsuleComponent&qu…

自动化报告pptx-python|高效通过PPT模版制造报告(三)

这是自动化报告学习的第三篇了,其他系列: 自动化报告的前奏|使用python-pptx操作PPT(一)自动化报告pptx-python|如何将pandas的表格写入PPTX(二)自动化报告pptx-python|高效通过PPT模版制造报告(三)自动化报告pptx-python|pptx 分析报告的工具包:reportgen(四)本…

C++泛型编程:模板偏特化

模板偏特化为模板提供特殊的实现&#xff0c;针对特定的模板参数或参数组合。 在模板全特化&#xff0c;所有的模板参数都被指定了具体的类型。 我们可以在泛化设计中提供一个特化版本&#xff0c;针对其中某个或者数个模板参数进行特化&#xff0c;我们可以指定一部分模板参…

Langchain ZERO_SHOT_REACT_DESCRIPTION的使用

ZERO_SHOT_REACT_DESCRIPTION 不能记住历史对话&#xff1a; import ChatGLM from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate from langchain_community.tools.tavily_search import TavilySearchResults…

【C#】创建Json文件并根据dll路径获取

创建Json文件 更改属性 【代码】根据dll路径获取 Assembly assembly Assembly.GetExecutingAssembly(); string assemblyPath assembly.Location; string relativeDllPath System.IO.Path.Combine(System.IO.Path.GetDirectoryName(assemblyPath), "Json\\test.json&q…

liunx服务器下vim无法:wq解决方案

当你vim某一个文件是&#xff0c;由于其他人在操作&#xff0c;或者上次操作中断&#xff0c;造成的 解决方案&#xff0c;不要&#xff0c;vim -r /etc/****&#xff0c;不然你会得到 正确方案 然后在&#xff0c;直接sudo vim /ect/xxx&#xff0c;还出现第一幅图就直接选…

三、特征提取、特征预处理

三、特征提取、特征预处理 1_特征提取1.1 统计学特征1.2 时域1.3 频域1.4 其他EEG特殊特征 2_特征提取预处理&#xff08;理论及Python实现&#xff09;2.1 归一化2.2 标准化2.3 特征二值化2.4 特征编码2.5 缺失值处理2.6 样本不平衡问题 1_特征提取 1.1 统计学特征 1.2 时域…

LabVIEW高精度微小电容测量

LabVIEW高精度微小电容测量 在电子工程和科研领域&#xff0c;精确测量微小电容值是一项有一定要求的任务&#xff0c;尤其在涉及到高精度和低成本时。设计了一种基于LabVIEW高精度微小电容测量系统&#xff0c;旨在提供一个既经济又高效的解决方案。 该系统的核心在于使用FD…