Gradle学习网站
https://www.w3cschool.cn/gradle_user_guide/gradle_user_guide-v6kt26h2.html
task hello {
doLast {
println 'Hello world!'
}
}
编译此build.gradle文件,使用命令 gradle -q hello
1.使用gralde androidDependencies 命令可以查看每种buildType下的依赖关系图
![](https://img.haomeiwen.com/i13017808/ff44c8d5c1e63220.png)
2.如果项目A只想依赖项目B,不想依赖项目B所属的子级依赖关系,可以使用@aar关键字关闭依赖传递 如:com.android.support.print:28.0.0@aar,但是要注意libs目录下的jar文件是不受影响的
此外还可以使用exclude module 排除一个库中引用的其他库,例如aar库A依赖了B和C,此时可以通过以下方式进行依赖
compile('com.xxx.yyy:1.1.1'){
exclude module:'com.xxx.yyy.bbb:1.1.2'
exclude module:'com.xxx.yyy.ccc:1.1.3'
}
这样也可以在A库中去除B库和C库的依赖
3.定义全局变量
ext{
android=[compileSdkVersion:23,buildToolsVersion:'23.0.2']
dependencies=[supportv7:'com.android.support:appcompat-v7:23.2.0']
}
然后在每个module中可以这样引用
android{
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
}
dependencies {
compile rootProject.ext.dependencies.supportv7
}
- 优化gradle编译速度
gradle编译工具本身已经内置了一个性能分析工具profile,通过gradle build -profile即可在根目录的build目录下就会生成一个profile文件
另外,我们可以通过禁用lint的方式 gradle build -x lint
或者通过在gradle脚本中动态增加编译参数 project.gradle.startParameter.excludedTaskNames.add('lint')
5.除了task的耗时外,aapt检查也是一个耗时大户,在debug版本可以使用如下代码提高aapt的速度,但是不建议在release版本编译的时候使用
aaptOptions{
cruncherEnabled=false
}
6.gradle加速
可以在gradle.properties文件中增加如下代码以表示开启gradle的增量编译,增加编译的内存资源到4G
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
同时,在build.gradle中增加如下代码
dexOptions{
incremental true
javaMaxHeapSize "4g"
}
7.清理gradle 缓存 使用gradle clean
8.重新刷新全部的依赖库 gradle --refresh-dependencies 通过这个指令可以强制刷新所依赖的库项目,从而获取新的版本库
9.使用gradle本地缓存,有时候公司nexus服务器挂掉,可以使用本地缓存先缓存,否则gradle会因为无法连接服务器而导致编译失败,只需要在Setting-Build-Build Tools-Gradle标签中,选中Offline work并指定默认的.gradle文件夹即可
网友评论