lintOptions——安卓gradle

目錄
1、前言
2、LintOptions 的結構簡析
3、LintOptions 的屬性
4、LintOptions 的方法
5、寫在最後
php

1、前言

今天分享的是 lintOptions 配置,其做用是 協助咱們發現項目中代碼質量問題html

2、LintOptions 的結構簡析

2.1 LintOptions 的存在位置

android {
    lintOptions {
    	// lintOptions 的配置
    }
}
複製代碼

2.2 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]
複製代碼

2.3 LintOptions 運行

./gradlew app:lint
複製代碼

注意小點git

  • window環境使用 gradlew,mac 使用 ./gradlew
  • 使用 app:lint 能夠追加變體,咱們這裏只有 releasedebug 因此,可使用 app:lintReleaseapp:lintDebug 分別對變體運行檢查。

3、LintOptions 的屬性

3.1 abortOnError

  • 類型:boolean
  • 描述:是否發現錯誤,則中止構建。
  • 使用方法:
lintOptions {
	abortOnError true
}
複製代碼
  • 囉嗦一下: 日常在打release包的時候,lint會默認開啓檢查,因此有時會看到相似以下的提示:
> 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

  1. 將 abortOnError 置爲false,讓錯誤不會停止咱們的編譯,但不建議這麼作
  2. 解決檢測出來的問題,讓編譯正常運行,以上面這一段爲例,則是將沒有使用到的資源進行移除便可。

3.2 absolutePaths

  • 類型:boolean
  • 描述:報告文檔是否輸出全路徑,默認爲相對路徑
  • 使用方法:
lintOptions {
	absolutePaths false
}
複製代碼

相對路徑時,圖中紅色部分路徑則相對於咱們設置該屬性的 gradle 文件作起始地。 bash

3.3 check

  • 類型:Set< String >
  • 描述:設置只檢查的類型。

能夠設置的類型id可使用 lint --list 進行查看app

  • 使用方法:
lintOptions {
	// 只檢查 未使用的 資源
	check 'UnusedResources'
}
複製代碼

3.4 checkAllWarnings

  • 類型:boolean
  • 描述:是否檢查全部警告,默認狀況下,有些警告的檢查類型是關閉的。開啓時,則會所有檢查。
  • 使用方法:
lintOptions {
	checkAllWarnings true
}
複製代碼

3.5 checkReleaseBuilds

  • 類型:boolean
  • 描述:在 release 版本是否檢查 fatal 類型錯誤,默認release版本爲開啓。開啓後,檢查到 fatal 類型錯誤則會關閉。
  • 使用方法:
lintOptions {
	checkReleaseBuilds true
}
複製代碼

3.6 disable

  • 類型:Set< String >
  • 描述:關閉某個檢查的類型,填寫的值爲類型的id,能夠經過 lint --list 查看支持的id。
  • 使用方法:
lintOptions {
	// 關閉 UnusedResources 檢查
	disable 'UnusedResources'
}
複製代碼

3.7 enable

  • 類型:Set< String >
  • 描述:開啓某個檢查的類型,填寫的值爲類型id,能夠經過lint --list 查看支持的id。
  • 使用方法:
lintOptions{
	enable 'UnusedResources'
}
複製代碼

3.8 htmlOutput

  • 類型:File
  • 描述:指定一個文件,用於輸出 html 類型的文件。會覆蓋原有的內容。
  • 使用方法:
lintOptions {
	// 指定輸出到 htmlReport.html 文件,相對的路徑是設置這個屬性的gradle的地址。
	htmlOutput file('htmlReport.html')
}
複製代碼

3.9 htmlReport

  • 類型:boolean
  • 描述:是否輸出 html 類型報告,默認開啓
  • 使用方法:
lintOptions {
	htmlReport true
}
複製代碼

3.10 ignoreWarnings

  • 類型:boolean
  • 描述:是否忽略警告,只檢查error。
  • 使用方法:
lintOptions {
	ignoreWarnings true
}
複製代碼

3.11 lintConfig

  • 類型:File
  • 描述:配置用做備用的默認配置文件。若是有一個 檢查的類型id 被設置爲error級別的錯誤,而在 lintConfig 配置的文件中設置爲ignore,最終仍是被認爲 error 級別,簡而言之lintConfig優先級最低。
  • 使用方法:
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>
複製代碼

3.12 quiet

  • 類型:boolean
  • 描述:是否關閉一些信息輸出,例如報告文件路徑的輸出
  • 使用方法:
lintOptions {
	quiet true
}
複製代碼

3.13 showAll

  • 類型:boolean
  • 描述:是否輸出全信息,不對信息縮減。
  • 使用方法:
lintOptions {
	showAll true
}
複製代碼

3.14 textOutput

  • 類型:File
  • 描述:檢查報告以文本類型輸出的路徑。
  • 使用方法:
lintOptions {
	textOutput file('report/zincTextReport.txt')
}
複製代碼

3.15 textReport

  • 類型:boolean
  • 描述:是否開啓檢查報告以文本類型輸出。
  • 使用方法:
lintOptions {
	textReport true
}
複製代碼

3.16 warningsAsErrors

  • 類型:boolean
  • 描述:是否將所有的警告做爲錯誤輸出
  • 使用方法:
lintOptions {
	warningsAsErrors true
}
複製代碼

3.17 xmlOutput

  • 類型:File
  • 描述:檢查報告以xml類型輸出的路徑。
  • 使用方法:
lintOptions {
	xmlOutput file('report/zincXmlReport.xml')
}
複製代碼

3.18 xmlReport

  • 類型:boolean
  • 描述:是否開啓檢查報告以文本類型輸出。
  • 使用方法:
lintOptions {
	xmlReport true
}
複製代碼

4、LintOptions 的方法

4.1 check

  • check(id)
  • check(ids)

id 只能添加一個,ids能夠添加多個gradle

描述:用於添加檢查的類型id,id能夠經過lint --list查看。

使用方法:

lintOptions {
	check 'id1'
	check 'id1','id2'
}
複製代碼

4.2 disable

  • disable(id)
  • disable(ids)

id 只能添加一個,ids能夠添加多個

描述:用於關閉檢查的類型id,id能夠經過lint --list查看。

使用方法:

lintOptions {
	disable 'id1'
	disable 'id1','id2'
}
複製代碼

4.3 enable

  • enable(id)
  • enable(ids)

id 只能添加一個,ids能夠添加多個

描述:用於開啓檢查的類型id,id能夠經過lint --list查看。

使用方法:

lintOptions {
	enable 'id1'
	enable 'id1','id2'
}
複製代碼

4.4 error

  • error(id)
  • error(ids)

id 只能添加一個,ids能夠添加多個

描述:用於將檢查的類型id置爲 error錯誤。

使用方法:

lintOptions {
	error 'id1'
	error 'id1','id2'
}
複製代碼

4.5 fatal

  • fatal(id)
  • fatal(ids)

id 只能添加一個,ids能夠添加多個

描述:用於將檢查的類型id置爲 fatal錯誤。

使用方法:

lintOptions {
	fatal 'id1'
	fatal 'id1','id2'
}
複製代碼

4.5 ignore

  • ignore(id)
  • ignore(ids)

id 只能添加一個,ids能夠添加多個

描述:用於將檢查的類型id置爲 ignore忽略。

使用方法:

lintOptions {
	ignore 'id1'
	ignore 'id1','id2'
}
複製代碼

4.6 warning

  • warning(id)
  • warning(ids)

id 只能添加一個,ids能夠添加多個

描述:用於將檢查的類型id置爲 warning錯誤。

使用方法:

lintOptions {
	warning 'id1'
	warning 'id1','id2'
}
複製代碼

5、寫在最後

Gradle項目地址:Github傳送門

本篇博文的lintOptions配置,請進傳送門

若是以爲本篇博文對你有所啓發或是解決了困惑,給個贊或關注我呀,小盆友會繼續分享更多的優質文章。

或是請我喝杯咖啡吧,小盆友會更加信心百倍的寫下去

相關文章
相關標籤/搜索