参考链接:

系统环境:

  • Gradle: 2.10
  • Sonarqube: 6.3.1

背景:

1
2
3
公司使用java语言开发Android项目,使用Gradle作为构建工具。
默认的Sonarway java规则也可以进行静态代码扫描。
希望增加业界常用的Android lint规则进行扫描,本文记录配置使用方法。

Sonarqube 安装 Android lint插件

logo
点击Quality Profiles查看Android Lint规则
logo


Sonarqube 配置Android项目扫描规则

我们配置一个新的Quality Profiles/java用于Android项目扫描。

新规则 包含Java Sonar way的Bugs、Vulnerabilities 和 Android Lint的Code Smells
logo
logo
logo
logo
logo
logo
logo


本地配置使用

  • 配置系统gradle.properties增加下面内容 (~/.gradle/gradle.properties)
1
2
3
systemProp.sonar.host.url=http://ip:9000
#----- Security (when 'sonar.forceAuthentication' is set to 'true')
systemProp.sonar.login=个人token
  • 修改项目build.gradle 相应位置增加下面配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
apply plugin: "org.sonarqube"
buildscript {
repositories {
maven{url "https://plugins.gradle.org/m2/"}
}
dependencies {
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
}
}
sonarqube {
androidVariant 'fullDebug'
properties {
property "sonar.projectName", "项目名称"
property "sonar.projectKey", "项目Key"
property "sonar.projectDescription", "项目描述"
property "sonar.projectVersion", "项目版本"
property "sonar.profile", "Android(上面新建的profile名称)"
property "sonar.android.lint.report", "./build/outputs/lint-results-debug.xml"
}
}
  • 执行gradle lintDebug 生成lint-results-debug.xml

  • 执行gradle Sonarqube 构建、分析、上传