分类
技术

SonarQube静态代码分析工具的配置和使用

一、配置

本地配置:

  1. google sonarqube,官网下载(8.3版本需要java11)
  2. 下载后解压,配环境变量

docker配置:

  1. docker search sonarqube,能看到官方镜像
  2. docker pull sonarqube 把镜像拉下来
  3. 参考https://docs.sonarqube.org/latest/setup/get-started-2-minutes/ 建一个image:
    docker run -d --name sonarqube -p 9000:9000 sonarqube,如果需要连接本地数据库则添加对应jdbc设置语句,默认映射端口为9000

二、运行服务

本地配置:

  1. 进入解压位置,执行bin/环境/.exe或者.sh
  2. 进入http://localhost:9000/确认运行状态

docker配置:

  1. docker dashboard上点击运行
  2. 进入http://localhost:9000/确认运行状态

三、SonarQube基本配置

  1. 登录:右上角login,使用默认管理员账号密码登录(admin,admin)
  2. 切换语言包:顶部菜单administration,下拉菜单market,搜索插件chinese安装,重启服务器

四、本地待分析项目配置

整体参考https://docs.sonarqube.org/latest/analapply plugin: “org.sonarqube”ysis/scan/ ,本文以音乐圣经安卓项目为例

  1. 进入http://localhost:9000/ ,点右上角+号添加项目,配置key、显示名字,并创建一个令牌
  2. 项目根目录gradle根节点上添加apply plugin: "org.sonarqube"
  3. 项目根目录gradle根节点上
sonarqube {
    properties {
        property "sonar.projectName", "musicbible-android"
        property "sonar.projectKey", "musicbible-android"
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.sources", "src/main/java"
        property "sonar.exclusions", '**/*Test*/**,' +
                '*.json,' +
                '**/*test*/**,' +
                '**/.gradle/**,' +
                '**/R.class'
    }
}

五、本地分析项目并上传结果到服务器

  1. 命令行执行:
gradle sonarqube -Dsonar.projectKey=com.boostfield.musicbible -Dsonar.host.url=http://localhost:9000 -Dsonar.login=705a58fb1e19b89eae2e74db40211917d8945a43

参数说明:key:服务器里配置的项目识别key,host.url:服务器地址,login:服务器里配置的项目识别令牌,执行后稍等一段时间就可以在http://localhost:9000/projects 里看到分析结果

  1. 与fastlane集成:
    fastlane中添加如下语句
desc "静态代码检测"
  lane :lint do
    puts("开始静态代码检测");
    gradle(
      task: 'sonarqube', 
      properties: {
        "Dsonar.projectKey" => "com.boostfield.musicbible",
        "Dsonar.host.url" => "http://localhost:9000 ",
        "Dsonar.login" => "705a58fb1e19b89eae2e74db40211917d8945a43",
      }
    );
    puts("静态代码检测结束");
  end

命令行执行:fastlane lint,执行后稍等一段时间就可以在http://localhost:9000/projects 里看到分析结果

“SonarQube静态代码分析工具的配置和使用”上的一条回复