Gradle使用小技巧
1. 设置全局的依赖缓存位置
IDE Gradle user Home配置配置环境变量
GRADLE_USER_HOME=D:\dev\Android\.gradle
以后IDE的Gradle user Home会默认指定到GRADLE_USER_HOME,下载的依赖缓存会在这个目录下
2. 配置全局的Maven仓库
在GRADLE_USER_HOME目录下创建init.gradle,并写入以下内容。
repositories {
maven { url 'http://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
}
参考:
https://www.cnblogs.com/langtianya/p/5220212.html
init.gradle文件在build开始之前执行,所以你可以在这个文件配置一些你想预先加载的操作
例如配置build日志输出、配置你的机器信息,比如jdk安装目录,配置在build时必须个人信息,比如仓库或者数据库的认证信息,and so on.
启用init.gradle文件的方法:
1、在命令行指定文件,例如:gradle --init-script yourdir/init.gradle -q taskName.你可以多次输入此命令来指定多个init文件
2、把init.gradle文件放到USER_HOME/.gradle/ 目录下.
3、把以.gradle结尾的文件放到USER_HOME/.gradle/init.d/ 目录下.
4、把以.gradle结尾的文件放到GRADLE_HOME/init.d/ 目录下.
如果存在上面的4种方式的2种以上,gradle会按上面的1-4序号依次执行这些文件,如果给定目录下存在多个init脚本,会按拼音a-z顺序执行这些脚本
类似于build.gradle脚本,init脚本有时groovy语言脚本。每个init脚本都存在一个对应的gradle实例,你在这个文件中调用的所有方法和属性,都会
委托给这个gradle实例,每个init脚本都实现了Script接口
3. 强制从远程仓库拉最新的SNAPSHOT版本
//1. 在app下的build.gradle里面增加如下代码,与android平级
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
//2. 在根目录下的build.gradle里面allprojects节点下增加
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
4. 强制项目某个依赖的版本
//在根目录下的build.gradle里面allprojects节点下增加
configurations.all {
resolutionStrategy {
force 'com.google.code.gson:gson:2.8.0'
}
}
5. 强制排除项目中某个依赖
//在根目录下的build.gradle里面allprojects节点下增加
configurations.all {
resolutionStrategy {
exclude group: 'com.google.code.gson', module: 'gson'
}
}
6. 依赖某个SDK时,排除调它依赖的某个SDK
implementation('com.xxx.xxxxx:0.1.8') {
exclude group: 'com.xx.x', module: 'aaa'
}