目錄
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配置,請進傳送門
若是以爲本篇博文對你有所啓發或是解決了困惑,給個贊或關注我呀,小盆友會繼續分享更多的優質文章。
或是請我喝杯咖啡吧,小盆友會更加信心百倍的寫下去