参数使用

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

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

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

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

必备参数

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

关键字 描述 默认值
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}

详情见官方文档

检测代码潜在bug和质量之SonarQube的更多相关文章

  1. 团队代码中Bug太多怎么办?怎样稳步提高团队的代码质量

    最近负责的Android APP项目,由于团队成员变动.界面改版导致代码大幅修改等原因,产品发布后屡屡出现BUG导致的程序崩溃. 经过对异常统计和代码走读,BUG主要集中在空指针引起的NullPoin ...

  2. java实现 HTTP/HTTPS请求绕过证书检测代码实现

    java实现 HTTP/HTTPS请求绕过证书检测代码实现 1.开发需求 需要实现在服务端发起HTTP/HTTPS请求,访问其他程序资源. 2.URLConnection和HTTPClient的比较 ...

  3. 关于执行findbugs,checkstyle,jacoco插件检测代码,GitHook的脚本编写

    Git钩子的作用: (pre-commit ) 在用户执行 git commit -m "xxx" 命令之前,先执行pre-commit文件中的脚本命令 在pre-commit文件 ...

  4. 一款检测代码中TODO的eslint插件

    一款检测代码中TODO的eslint插件 前言 看了我标题进来的同学应该也知道我做的是个啥东西 没错是一个eslint插件,前端魔法师们日常所使用的工具之一 什么?你不知道eslint是干嘛的--吃鲸 ...

  5. 它说你的代码有 Bug「GitHub 热点速览 v.21.44」

    作者:HelloGitHub-小鱼干 本周热点上的榜单大多数提升工作效率的实用工具,像是一个 API 管理所有通知消息(包括推送.邮件-)的 notifire,再是高速解析 JSON 文件的 simd ...

  6. IDEA插件(Android Studio插件)开发示例代码及bug解决

    IDEA插件(Android Studio插件)开发示例代码及bug解决 代码在actionPerformed方法中,有个AnActionEvent e 插件开发就是要求我们复写上述的这个方法即可,在 ...

  7. 神兽保佑代码无bug O(∩_∩)O

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. Caffe使用step by step:r-cnn目标检测代码

    深度学习算法火起来之后,基于深度学习各种模型都如雨后春笋一般在各个领域广泛应用. 由于想把深度学习算法应用在在视频目标检测方向,得到一个较好的结果.由于视频数据的复杂性,因此使用深度学习算法在视频中的 ...

  9. 神兽保佑-代码无BUG

    ┏┓ ┏┓┏┛┻━━━┛┻┓┃ ┃ ┃ ━ ┃┃ ┳┛ ┗┳ ┃┃ ┃┃ ┻ ┃┃ ┃┗━┓ ┏━┛ ┃ ┃   神兽保佑 ┃ ┃   代码无BUG!       ┃ ┗━━━┓       ┃ ┣┓ ...

随机推荐

  1. [TCP/IP] TCP的重发机制是怎么实现的

    1)滑动窗口机制,确立收发的边界,能让发送方知道已经发送了多少(已确认).尚未确认的字节数.尚待发送的字节数:让接收方知道(已经确认收到的字节数) 2) 超时重传,tcp每发送一个报文段,就设置一次计 ...

  2. VIJOS-P1450 包裹快递

    洛谷 P1542 包裹快递 https://www.luogu.org/problem/P1542 JDOJ 1527: VIJOS-P1450 包裹快递 https://neooj.com/oldo ...

  3. TCP的三次握手和四次挥手详解

    相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. TCP报文格式 TCP的包如下: ...

  4. 【java】@SuppressWarnings

    作用:用于抑制编译器产生警告信息. 示例1——抑制单类型的警告: 示例2——抑制多类型的警告: 示例3——抑制所有类型的警告: 三.注解目标 通过 @SuppressWarnings 的源码可知,其注 ...

  5. [POJ1189][BZOJ1867][CODEVS1709]钉子和小球

    题目描述 Description 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周围的钉子的距离都等于d,每个格子的宽度也都等于d,且 ...

  6. SQL Server 迁移数据库 (一)导入和导出

    今天正好换服务器,记录一下迁移数据库的过程. 以前经常用备份还原法,今天试试‘SQL Server 2016 导入和导出数据’这个看怎么玩. 1. 建数据库结构 1.1 在需要迁移的数据库名字上右击, ...

  7. Newcoder 小白月赛20 H 好点

    Newcoder 小白月赛20 H 好点 自我感觉不错然后就拿出来了. 读读题之后我们会发现这是让我们求一堆数,然后这些数一定是递减的. 就像这样我们选的就是框起来的,然后我们可以看出来这一定是一个单 ...

  8. [LeetCode] 17. Letter Combinations of a Phone Number 电话号码的字母组合

    Given a string containing digits from 2-9inclusive, return all possible letter combinations that the ...

  9. Metasploit 常用命令手册

    Installation curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/template ...

  10. C++中vector小学习,顺便查了下<stdio.h>(或<cstdio>)

    今天看书,邻桌在看<C++ Primer>,拿过来看了一会儿.以前比较少用vector容器,看了下后,瞬间觉得好腻害的样子,就想试一下.嗯,就是试一下而已.(代码可能网上都差不多,有参考) ...