Gradle|Gradle project 属性定义的两种方式
在看下面代码时,首先你要对1. 扩展属性 使用gradle
的默认的项目结构和属性传递有一定了解。
ext
命名空间- 定义
project.ext.myProp = 'myValue'ext {
someOtherProp = 123
}
- 使用
project.someOtherProp
2. 属性文件
Gradle
属性可以通过在gradle.properties
文件中声明直接添加到项目中。# gradle.properties
exampleProp = myValue
someOtherProp = 455
其中扩展属性只能在
rootProject
中被定义,并且subProject
会被传递。在subProject
中定义无效(所以不会有覆盖的情况)。项目结构
rootProject {
:app
:library
}定义扩展属性
rootProject.ext.prop = 123 结果
/*
app.prop : 123//传递
library.prop : 123//传递
*/
【Gradle|Gradle project 属性定义的两种方式】在
rootProject
中定义的扩展属性会在:app
和 :library
中都有效。属性文件,可以在
rootProject
中定义,也可以在subProject
中定义。项目结构
rootProject {
:app
:library
}定义扩展属性
rootProject#gradle.properties {
prop = rootProject
}
app#gradle.properties {
prop = app
}结果
/*
app.prop : app// 覆盖
library.prop : rootProject //传递
*/
如何将一个
.gralde
文件的函数给其他文件使用
// 定义在 `test.gradle`
def sayHello() {
println("sayHello")
}ext {
sayHello = this.&sayHello
}// 使用在 `build.gradle`
apply from: './test.gradle'// 我想在这里调用 test.gradle 文件中的 sayHello() 函数
sayHello()
推荐阅读
- 第6.2章(设置属性)
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 缓存有关的配置和属性
- 狗趣
- Spring源码解析_属性赋值
- HTML5新增选择器属性方法
- Arcgis根据经纬度批量提取属性值
- SpringBoot|SpringBoot 属性配置中获取值的方式
- Android|Android gradle打包涉及task源码解析(五)
- 网络请求,如斯优雅