AndroidStudio SonarLint和SonarQube的使用

Posted Ang_qq_252390816

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroidStudio SonarLint和SonarQube的使用相关的知识,希望对你有一定的参考价值。

环境:搭建 windows 本地环境

简介

SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码Bug。它可以与您现有的工作流程集成,以支持跨项目分支和拉取请求的持续代码检查。

环境要求

运行 SonarQube 的唯一先决条件是在你的机器上安装 Java 11(Oracle JRE 11 或 OpenJDK 11)且配置了环境变量。如果未安装Java 11 ,SonarQube(Version: 9.1)服务启动失败;

下载SonarQube

Download | SonarQube

下载好是一个zip压缩文件,直接解压到自己想要的目录既可以;

启动SonarQube服务

找到 安装目录\\bin\\windows-x86-64,点击StartSonar.bat既可启动SonarQube服务;

浏览器中输入

http://localhost:9000 或http://127.0.0.1:9000 即可进入可视化的SonarQube服务界面;初始账号密码都是admin;

在网页端SonarQube创建项目

1,点击Manually,手动创建项目

2,填写项目名称和密钥,密钥可以使用项目名称或者自定义都可以

 3,点击Set Up进入,再点击Locally选项

4,输入要生Token的内容,例如输入:Test,点击Generate生成Token,点击继续;

5,这是最后一步,点击Gradle

注意:以上设置要记住Project display name(项目名称)、Project key(密钥)、生成的Token,后面androidStudio关联SonarQube服务的时候要用;

踩坑之路

AndroidStudio连接到SonarQube

前言

由于启动SonarQube需要JDK11,所以把Java的环境变量改成JDK11(之前是JDK 8),改了之后如果AndroidStudio是老的版本比如4.1.1之前的版本,可能导致Android Studio启动不了,但是AndroidStudio在改之前已经打开了不影响继续使用;如果是目前最新的AndroidStudio 2020.3.1版本不影响,AndroidStudio 2020.3.1安装时自带jre就是jre11;踩了很多坑才总结者段话;

1,AndroidStudio安装SonarLint插件

具体步骤及使用参考:AndroidStudio SonarLint安装及使用_ezconn的博客-CSDN博客

2,项目下的build.gradle中添加插件

classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'

3,module 级别的build.gradle(:app)中添加

apply plugin: 'org.sonarqube'

sonarqube {
    properties {
        //Sonar服务器地址
    property "sonar.host.url", "http://localhost:9000"
    //Token模式
    //property "sonar.login","07704f4ca9c20492de2b5b7814a1c0a4ebc6731c"
    //账号密码模式
    property "sonar.login","SonarQube 账号"
    property "sonar.password","SonarQube 密码"
    property "sonar.sourceEncoding", "UTF-8"
    property "sonar.projectKey", "Test_Sonar"
    property "sonar.projectName", project.name

    //需要扫描的上传检测代码的模块,可以选择也可以配置哪一些需要或者不需要上传的模块(这里指APP模块下面的java包里面的全部)
    property "sonar.sources", "src/main/java"
    property "sonar.projectVersion", project.version

    }
}

4,Settings —> Tools —> SonarLint ,点击“+”号

 5,填写自定义名称(例如Test),选择sonarqube选项,填写SonarQube服务地址,例如本地SonarQube服务地址http:localhost:9000或者http://127.0.0.1:9000

 6,点击下一步,选择Login / Password

7,输入SonarQube服务的账号和密码;其他一路下一步就好,最后点击finish;

8,点击Project Settings ,在Connection中找到刚才设置的Connection Name 名称;

9,点击Search in list..同步SonarQube服务端项目;Project :会有Test_Sonar可以选择显示;设置好Connection和Project选项之后点击OK;

10,Terminal 终端输入

gradlew sonarqube

AndroidStudio不在使用SonarQube

File ->Settings -> Tools -> SonarLint -> Project Settings 取消勾选Bind project to SonarQube/SonarCloud即可;

其他

AndroidStudio 版本是2020.3.1,如果AndroidStudio中使用的Gradle是高版本的,比如gradle是7.0.2 ,AGP是 7.0.3;那么Gradle SDK就要使用jre11;因为Gradle工具是groovy语言写的,而groovy也是基于JVM的语言,所以使用和运行Gradle也需要jre版本要求;

Java 8 Java11 都有安装,且环境变量配置的是Java11;

异常

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

解决办法:gradle.properties文件中加入org.gradle.java.home= D:\\\\IDE\\\\jdk11(自己本机Java11安装目录,注意没有到bin目录),可能是因为执行 gradlew sonarqube 命令时AGP获取是gradle.properties文件中配置的Java 环境;

SonarQube文档

SonarQube Documentation | SonarQube Docs

以上是关于AndroidStudio SonarLint和SonarQube的使用的主要内容,如果未能解决你的问题,请参考以下文章

AndroidStudio SonarLint和SonarQube的使用

AndroidStudio SonarLint和SonarQube的使用

IntelliJ IDEA - 关闭 SonarLint 自动扫描

SonarLint(Sonar) 代码质量管理

sonarLint和sonarQube

Idea: SonarLint插件使用