sonar代码检测
一、基础概念
1、代码静态质量要求为A
(1)静态检测:对程序代码的检测
变量未初始化,空指针引用,数据类型不匹配,返回局部变量,数据字符串边界溢出,内存泄漏,
(2)动态检测:对代码运行时的检测
主要进行内存和资源检查,通过在开辟和释放操作中进行插桩或者命令替换,进行内存和资源统计分析。
2、重复率最低要求为<5%
3、注释率最低要求为>30%
4、代码度量
(1)代码覆盖率
(2)圈复杂度
二、java
1、环境:sonarqube7.4 java1.8 sonarScanner3.2.0 mysql5.6(sonarqube7.4需要的MySQL是mysql5.6到8.0(不包含8.0))(需要申请序列号,丢弃)
2、使用sonarcloud环境,创建新项目-》进入根目录-》运行命令mvn verify sonar:sonar
三、python
1、使用sonarcloud环境,创建新项目->现在scanner包-》配置环境-》进行项目的根目录运行命令(sonar-scanner.bat -D"sonar.organization=luowencc" -D"sonar.projectKey=NNFiveTimes"-D"sonar.sources=." -D"sonar.host.url=https://sonarcloud.io" -D"sonar.login=be6d931052eb6ddd570f11ac0e513f035c896099")
2、成功!!!!!!!!
四、sonarcloud平台各种参数含义
1、bugs
2、vulnerabilities(脆弱性):安全漏洞数:
3、code smells:是指在代码之中潜在问题的警示信号。并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。
4、coverage:行覆盖率对应的是你的代码行,有多少行被覆盖,比如,你有100行代码,执行了90行,那么覆盖率就是90%;分支分概率是你代码中存在分析,有多少分支被覆盖,比如,你有5个分支,那么对应的应该有10条语句(一个分支有两条语句,ture和false),那么你执行了其中的5条,那么覆盖率就是50%;
5、duplications