前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >检测代码潜在bug和质量之SonarQube

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

作者头像
sunsky
发布2020-08-20 17:33:53
1.3K0
发布2020-08-20 17:33:53
举报
文章被收录于专栏:sunskysunsky

参数使用

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

  • 全局分析参数,通过Web UI设置,作用于所有项目(配置–>通用–>通用中设置)
  • 项目分析参数,通过WebUI设置,覆盖全局参数(在项目级别的配置–>设置中设置)
  • 项目分析参数,定义在项目的分析设置文件(如:sonar-project.properties)和分析器的配置文件(如:sonar-runner.properties),覆盖WebUI中设置的项目分析参数
  • 命令行参数,在开始分析时通过命令指定的参数(如:-d 或 /d:),可以覆盖项目分析参数

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

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

SonarQube_KeyWord.png
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 设置仅仅分析指定的文件
通配符

符号

匹配

*

匹配一个或多个字符

**

匹配一个或多个目录

?

匹配一个字符

如下:

代码语言:javascript
复制
# 排除所有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

比如:
代码语言:javascript
复制
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}

详情见官方文档

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 必备参数
  • 可选参数
    • 忽略文件
      • 通配符
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档