其他分享
首页 > 其他分享> > 检测代码潜在bug和质量之SonarQube

检测代码潜在bug和质量之SonarQube

作者:互联网

参数使用

项目分析参数可以在多个地方设置,继承关系如下:

注:只有WebUI中配置的参数会存储在数据库中

下面的参数列表并不完整,在WebUI中全局或项目级别的设置,都可以作为分析参数,如下图中的关键字:

SonarQube_KeyWord.png

必备参数

执行项目分析必须指定的参数

关键字描述默认值
sonar.host.url 服务器地址 http://localhost:9000
sonar.projectKey 项目Key唯一标示,可以是字母、数字、’-‘、’_‘、’.’和’:’,但至少要包含一个字母  
sonar.projectName 项目名称  
sonar.projectVersion 项目版本  
sonar.sources 源代码文件夹,多个用’,’分开  

可选参数

关键字描述默认值
身份验证    
sonar.login 用户名或者是身份认证令牌  
sonar.password 用户密码,若使用身份认证令牌则可忽略此属性  
项目配置    
sonar.projectDescription 项目描述  
sonar.tests 测试文件目录,多个用’,’分开  
sonar.analysis.mode 分析模式(publish/preview/issues) publish
sonar.language 需要分析源码的语言,默认执行多语言分析  
sonar.sourceEncoding 源码编码格式 系统编码格式
sonar.projectBaseDir 项目主目录,用于分析开始时的当前目录不是项目主目录的情况,可以是相对目录也可以是绝对目录  
sonar.working.directory 用于SonarQube Runner执行分析时的工作目录,可以是相对目录,也可以是绝对目录 .sonar
分析日志    
sonar.log.level 设置分析过程中的日志级别(INFO/DEBUG/TRACE,其中TRACE级别会输出SQL语句及其执行的事件) INFO

忽略文件

有以下几种方式来缩小要分析源码的范围,如下:

  1. 源代码目录:设置sonar.sources参数指定源代码目录的范围
  2. 文件后缀:许多语言都提供了限制文件后缀名的的参数,’配置’–>’通用’–>’[语言]’,设置File suffixes属性
  3. 选择指定文件
    • sonar.exclusions/sonar.test.exclusions 设置分析除指定文件以外的所有文件
    • sonar.inclusions/sonar.test.inclusions 设置仅仅分析指定的文件

通配符

符号匹配
* 匹配一个或多个字符
** 匹配一个或多个目录
? 匹配一个字符

如下:

# 排除所有Bean结尾的类
# 匹配org/sonar.api/MyBean.java, org/sonar/util/MyOtherBean.java, org/sonar/util/MyDTO.java等
sonar.exclusions=**/*Bean.java,**/*DTO.java

# 排除src/main/java/org/sonar目录下所有文件
# 但不包括其子目录下的文件
sonar.exclusions=src/main/java/org/sonar/*

# 排除bank目录及其子目录下的所有文件
sonar.exclusions=bank/**/*

# 排除bank目录及其子目录下的所有.cs文件
sonar.exclusions=bank/**/*.cs

比如:
CurrentPath=$(pwd)
CurrentPath=${CurrentPath#\/}
CurrentPath=${CurrentPath//\//_}
echo $CurrentPath

sonar-scanner \
    -X \
  -Dsonar.projectKey=cms \
  -Dsonar.sources=. \
#  -Dsonar.tests=. \
  -Dsonar.exclusions=**/_vgo/** \
  -Dsonar.exclusions=**/vendor/** \
  -Dsonar.host.url=http://{sonar qube server} \
  -Dsonar.login=xxxxxx \
  -Dsonar.projectName=${CurrentPath}

 

 

 

 

详情见官方文档

标签:SonarQube,代码,exclusions,参数,设置,CurrentPath,sonar,Dsonar,bug
来源: https://www.cnblogs.com/sunsky303/p/11760353.html