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配置,请进传送门

若是以为本篇博文对你有所启发或是解决了困惑,给个赞或关注我呀,小盆友会继续分享更多的优质文章。

或是请我喝杯咖啡吧,小盆友会更加信心百倍的写下去

相关文章
相关标签/搜索