SonarQube接入说明

Sonar系统接入规范

  1. 目的
    为规范代码管理流程、提高代码质量,特制定本规范。

  2. 范围
    原则上灿谷内部所有研发项目源代码均需接入sonar系统,科技线先行。

  3. Sonar系统地址
    http://10.42.3.161:9000/

  4. 系统功能
    Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量:

a) 不遵循代码标准
Sonar可以通过PMD, CheckStyle, Findbugs等等代码规则检测工具规范代码编写。
b) 潜在的bug
sonar可以通过PMD, CheckStyle, Findbugs等等代码规则检测工具检测出潜在的bug。
c) 糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
d) 重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示源码中重复严重的地方。
e) 注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降,而过多的注释又会使得开发人员将精力过多地花费在阅读注释上。
f) 缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率。
g) 糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

  1. 接入方式
    Sonar系统可方便的与Jenkins集成,在执行构建任务时检测代码质量。具体方法请详见附件1

  2. 检测周期
    Jenkins每次构建时触发检测,项目负责人需每周定时查看结果,修复相关问题。

  3. 修复原则
    a) 原则上被检测为“bug”、“漏洞”类型的问题需全部修复;
    b) 严重程度为“阻断”的问题需全部修复。
    如下图示:

在这里插入图片描述

一. MAVEN项目
以http://10.42.0.230:8080/对应的jenkins说明,如图1

图1
在这里插入图片描述

构建时使用 Maven 3.3.9 prd(该maven已经和对应的sonarqube配置完毕)
目标为:sonar:sonar -Dsonar.login=664151fd226fdfc4d4a5012940c0f2f6526e72fe

二.Gradle项目
以http://10.42.0.230:8080/对应的jenkins说明,如图2

图2
在这里插入图片描述

构建时使用 Gradle5.2.1(该gradle已经和对应的sonarqube配置完毕)
Tasks为:sonarqube -Dsonar.host.url=http://10.42.3.161:9000 -Dsonar.verbose=true -Dsonar.login=664151fd226fdfc4d4a5012940c0f2f6526e72fe

同时需要修改自身项目跟路径下的build.gradle修改内容如下
• 顶部增加插件配置,如图3

图3
在这里插入图片描述

plugins {
id “org.sonarqube” version “3.1.1” // SonarQube
}
sonarqube {
properties {
property “sonar.sourceEncoding”, “UTF-8”
}
}
• 需要忽略的目录,如grpc项目自动生成的api代码部分,如图4

图4
sonarqube {
skipProject = true // SonarQube 忽略
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值