目录
1、前言
2、LintOptions 的结构简析
3、LintOptions 的属性
4、LintOptions 的方法
5、写在最后
php
今天分享的是 lintOptions 配置,其做用是 协助咱们发现项目中代码质量问题。html
android {
lintOptions {
// lintOptions 的配置
}
}
复制代码
按照老规矩,咱们知道 gradle 的配置均会映射到一个java类。java
LintOptions 映射到 com.android.build.gradle.internal.dsl.LintOptions
类,其继承结构以下android
graph LR
A[LintOptions] -.-> B[com.android.builder.model.LintOptions]
A[LintOptions] -.-> C[Serializable]
复制代码
./gradlew app:lint
复制代码
注意小点git
gradlew
,mac 使用 ./gradlew
app:lint
能够追加变体,咱们这里只有 release
和 debug
因此,可使用 app:lintRelease
和 app:lintDebug
分别对变体运行检查。lintOptions {
abortOnError true
}
复制代码
> Lint found errors in the project; aborting build.
Fix the issues identified by lint, or add the following to your build script to proceed with errors:
...
android {
lintOptions {
abortOnError false
}
}
...
The first 3 errors (out of 6) were:
/Users/zinc/Documents/code/gradle/GradleStudy/app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml:1: Error: The resource R.drawable.ic_arrow_drop_down_black_24dp appears to be unused [UnusedResources]
<vector xmlns:android="http://schemas.android.com/apk/res/android"
^
/Users/zinc/Documents/code/gradle/GradleStudy/app/src/main/res/drawable/ic_launcher_background.xml:2: Error: The resource R.drawable.ic_launcher_background appears to be unused [UnusedResources]
<vector xmlns:android="http://schemas.android.com/apk/res/android"
^
/Users/zinc/Documents/code/gradle/GradleStudy/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: Error: The resource R.mipmap.ic_launcher_round appears to be unused [UnusedResources]
复制代码
此时咱们有两个解决方案:github
lintOptions {
absolutePaths false
}
复制代码
相对路径时,图中红色部分路径则相对于咱们设置该属性的 gradle 文件作起始地。 bash
能够设置的类型id可使用
lint --list
进行查看app
lintOptions {
// 只检查 未使用的 资源
check 'UnusedResources'
}
复制代码
lintOptions {
checkAllWarnings true
}
复制代码
lintOptions {
checkReleaseBuilds true
}
复制代码
lint --list
查看支持的id。lintOptions {
// 关闭 UnusedResources 检查
disable 'UnusedResources'
}
复制代码
lint --list
查看支持的id。lintOptions{
enable 'UnusedResources'
}
复制代码
lintOptions {
// 指定输出到 htmlReport.html 文件,相对的路径是设置这个属性的gradle的地址。
htmlOutput file('htmlReport.html')
}
复制代码
lintOptions {
htmlReport true
}
复制代码
lintOptions {
ignoreWarnings true
}
复制代码
lintOptions {
lintConfig file('lint/rule_lint.xml')
}
复制代码
lint/rule_lint.xml 内容以下ide
<?xml version="1.0" encoding="utf-8"?>
<lint>
<!-- id能够经过 "lint \-\-list" 查看支持的id-->
<!-- severity 是设置的提示级别 -->
<issue id="UnusedResources" severity="error"/>
</lint>
复制代码
lintOptions {
quiet true
}
复制代码
lintOptions {
showAll true
}
复制代码
lintOptions {
textOutput file('report/zincTextReport.txt')
}
复制代码
lintOptions {
textReport true
}
复制代码
lintOptions {
warningsAsErrors true
}
复制代码
lintOptions {
xmlOutput file('report/zincXmlReport.xml')
}
复制代码
lintOptions {
xmlReport true
}
复制代码
id 只能添加一个,ids能够添加多个gradle
描述:用于添加检查的类型id,id能够经过lint --list
查看。
使用方法:
lintOptions {
check 'id1'
check 'id1','id2'
}
复制代码
id 只能添加一个,ids能够添加多个
描述:用于关闭检查的类型id,id能够经过lint --list
查看。
使用方法:
lintOptions {
disable 'id1'
disable 'id1','id2'
}
复制代码
id 只能添加一个,ids能够添加多个
描述:用于开启检查的类型id,id能够经过lint --list
查看。
使用方法:
lintOptions {
enable 'id1'
enable 'id1','id2'
}
复制代码
id 只能添加一个,ids能够添加多个
描述:用于将检查的类型id置为 error错误。
使用方法:
lintOptions {
error 'id1'
error 'id1','id2'
}
复制代码
id 只能添加一个,ids能够添加多个
描述:用于将检查的类型id置为 fatal错误。
使用方法:
lintOptions {
fatal 'id1'
fatal 'id1','id2'
}
复制代码
id 只能添加一个,ids能够添加多个
描述:用于将检查的类型id置为 ignore忽略。
使用方法:
lintOptions {
ignore 'id1'
ignore 'id1','id2'
}
复制代码
id 只能添加一个,ids能够添加多个
描述:用于将检查的类型id置为 warning错误。
使用方法:
lintOptions {
warning 'id1'
warning 'id1','id2'
}
复制代码
Gradle项目地址:Github传送门
本篇博文的lintOptions配置,请进传送门
若是以为本篇博文对你有所启发或是解决了困惑,给个赞或关注我呀,小盆友会继续分享更多的优质文章。
或是请我喝杯咖啡吧,小盆友会更加信心百倍的写下去