gradle的参数说明(推荐)
一、sourceSets:定义哪些文件或者文件夹被编译(通常默认的文件夹会被编译,如果我们想在不同的环境下编译不同文件或者需要定义新的资源文件夹,需要定义这个属性)
sourceSet参考文章,其实sourceSets是java的插件,当然,也有android.sourceSets,是android的插件,这两个的用法,是一致的
1、在组件化开发的过程中,针对relase和debug的版本,我们会加载不同的Manifest文件
sourceSets{
main{
if(isDebug.toBoolean()){
manifest.srcFile 'src/main/debug/AndroidManifest.xml'}
else{
manifest.srcFile 'src/main/release/AndroidManifest.xml' }}
}
isDebug的用法就是groovy语法的定义,详情查看:groovy语言介绍(他人博客)
2、AS创建一个项目会默认文件夹,如果我们有需求创建其他的文件夹(eg:我们会根据模块去创建资源文件),项目是不会识别的,这个时候需要我们在build.gradle中去定义文件夹的名称才会被项目编译。这个时候会用到sourceSets。
android.sourceSets {
main.res.srcDirs += ['src/main/res-models/res-main', 'src/main/res-models/res-home']
main.java.srcDirs += ['src/main/java-thirdparty', 'src/main/java-update']
}
3、打包的时候,不包含某些文件
sourceSets {
main{
java {
exclude '/test/**' // 不想包含文件的路径
}
resources {
exclude '/resource/**' // 不想包含的资源文件路径 } .....
}
}
二、lintOptions:lint检查是Android Studio的代码扫描分析工具,能够检测出代码的不完美代码,性能影响的代码,国际化,不安全编码,无用资源引用等。
引用下后面的文章,个人感觉比较全面lint介绍和使用和gradle中lint参数说明
lintOptions
{ checkReleaseBuilds false #true--所有正式版构建执行规则生成崩溃的lint检查,如果有崩溃问题将停止构建
abortOnError false # true--错误发生后停止gradle构建
}
三、dexOptions:multiDex的相关配置,超过方法数目或者配置后编译速度更快
//multiDex的一些相关配置,这样配置可以让你的编译速度更快
dexOptions {
preDexLibraries = false //让它不要对Lib做preDexing
incremental true //开启incremental dexing,优化编译效率,这个功能android studio默认是关闭的。
javaMaxHeapSize "4g" //增加java堆内存大小
}
四、packagingOptions设置打包时候的相关属性
exclude:删除打包的时候的属性,下面的这个属性是打包的时候,删除META-INF包下的文件,打包后文件说明(META-INF)
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
}
五、aapt:打包的工具。详情可以查看《打包后文件说明》,下面在这两个是忽略png图片的规则
aaptOptions.useNewCruncher = false
aaptOptions.cruncherEnabled = false