sonarqube提供代码分析功能,可以帮助用户分析多种语言的代码,您可以将项目添加到软件分析,也可以在web连接到远程的项目分析,在分析期间可以从服务器请求数据,随后将数据提供给分析的文件,并以报告的形式将结果数据发送回服务器,然后在服务器端异步分析,分析报告排队并按顺序处理,因此很可能在分析日志显示完成后的短暂时间内,更新的值在SonarQube项目中不可见,但是您将能够分辨出正在发生的事情,因为项目名称右侧的项目主页上将添加一个图标,将鼠标悬停在它上面就可以显示项目信息,sonarqube分析过程还是比较复杂的,建议用户到官方网站查看教程!
软件功能
窃听器
代表代码中出错的问题。如果这还没有破裂,它将会,也许是在最糟糕的时刻。这需要修复。昨天。
代码嗅觉
代码中与可维护性相关的问题。保持原样意味着最好的维护者将比他们应该更改代码更难。在最坏的情况下,他们会对代码状态感到困惑,因为他们会在进行更改时引入其他错误。
问题
当一段代码不符合规则时,快照上会记录一个问题。可以在源文件或单元测试文件上记录问题。有三种类型的问题:错误,代码嗅觉和漏洞
测量
给定时间内给定文件或项目的度量值。例如,MyProlass类上的125行代码或项目myProject上30.5%的重复行密度
新代码期
您需要密切关注代码中引入新问题的时间段。理想情况下,这是因为previous_version,但如果您不使用类似Maven的版本控制方案,则可能需要设置相对任意的时间段,例如21天或特定日期。
质量概况
一套规则。每个快照都基于单个质量配置文件。
规则
应遵循的编码标准或惯例。不遵守编码规则会导致错误,漏洞,安全热点和代码嗅觉。规则可以检查代码文件或单元测试的质量。
软件特色
SonarQube可以对20多种不同的语言进行分析。该分析的结果将是质量测量和问题(编码规则被打破的情况)。但是,分析的内容会因语言而异:
在所有语言中,“blame”数据将自动从支持的SCM提供程序导入。自动支持Git和SVN。其他提供商需要额外的插件。
在所有语言中,执行源代码的静态分析(Java文件,COBOL程序等)
可以对某些语言(Java中的.class文件,C#中的.dll文件等)执行编译代码的静态分析。
默认情况下,在分析期间,只有语言分析器可识别的文件才会加载到项目中。例如,如果您的SonarQube实例仅包含SonarJava SonarJS,则将加载所有.java和.js文件,但会忽略.xml文件。
安装方法
(1)分别下载sonarqube和sonar-scanner安装包到本地之后进行解压
(2)启动MySQL数据库,创建sonar数据库即可。
(3)进入sonarqube解压缩之后的文件目录中,进入conf文件下,找到
sonar.properties文件,并向其中添加MySQL数据库的连接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
(4)进入sonar-scanner解压缩之后的文件目录中,进入conf文件下,找到sonar-scanner.properties文件,并向其中添加MySQL数据库的连接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
(5)至此,Sonar的基本配置就已经完成了,启动它
进入sonarqube解压缩之后的文件目录中,进入bin目录下,找到相对应操作系统的启动环境(StartSonar.bat)进行启动服务。
我的windows64位系统,具体是:C:softSonarQubesonarqube-7.6binwindows-x86-64StartSonar.bat,点击执行StartSonar.bat文件启动服务
(7)进入数据库中,你会看到生成了大量的数据表,如下:
(8)在浏览器上访问:http://localhost:9000,出现如下页面信息,表示sonar安装成功,
点击登录进行登录,账户:admin,密码:admin,即可进入
(9)安装中文语言包,搜索chinese Pack,进行安装即可
安装成功,需要重启StartSonar.bat服务,即可看到如下效果。
到这里已经完成了安装。
(1)分别下载sonarqube和sonar-scanner安装包到本地之后进行解压
(2)启动MySQL数据库,创建sonar数据库即可。
(3)进入sonarqube解压缩之后的文件目录中,进入conf文件下,找到
sonar.properties文件,并向其中添加MySQL数据库的连接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
(4)进入sonar-scanner解压缩之后的文件目录中,进入conf文件下,找到sonar-scanner.properties文件,并向其中添加MySQL数据库的连接配置信息如下:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUn icode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
(5)至此,Sonar的基本配置就已经完成了,启动它
进入sonarqube解压缩之后的文件目录中,进入bin目录下,找到相对应操作系统的启动环境(StartSonar.bat)进行启动服务。
我的windows64位系统,具体是:C:softSonarQubesonarqube-7.6binwindows-x86-64StartSonar.bat,点击执行StartSonar.bat文件启动服务
(7)进入数据库中,你会看到生成了大量的数据表,如下:
(8)在浏览器上访问:http://localhost:9000,出现如下页面信息,表示sonar安装成功
点击登录进行登录,账户:admin,密码:admin,即可进入
(9)安装中文语言包,搜索chinese Pack,进行安装即可
安装成功,需要重启StartSonar.bat服务,即可看到如下效果。
到这里已经完成了安装。
使用说明
分支类型
短支
这对应于Pull / Merge Requests或Feature Branches。这种分支:
会很快消失
将迅速合并以防止集成问题
是针对给定版本开发的,因此版本不会更改,并且无法设置新代码期间; 分支中已更改的所有内容都是新代码
跟踪与其上更改的代码相关的所有新问题。
长支
这对应于将包含多个发行版本的“维护”分支。这种分支将:
持续很长时间
不可避免地与其他分支机构分歧越来越大
房子有几个发布版本,每个版本都必须通过质量门才能进入生产,预计不会被合并到另一个分支
如果SonarQube的结果不相关,那么没有人会想要使用它。这就是为什么精确配置每个项目要分析的内容是非常重要的一步。这样做可以消除噪音,例如生成的代码上标记的问题和重复,或者与某些类型的对象无关的规则中的问题。
SonarQube为您提供了几种选项,可以准确配置要分析的内容。您可以
完全忽略一些文件或目录
从问题检测(特定规则或所有这些)中排除文件/目录,但分析所有其他方面
从重复检测中排除文件/目录,但分析所有其他方面
从Coverage计算中排除文件/目录,但分析所有其他方面
您可以在全局或项目级别进行这些更改。在两个级别,导航路径都相同:管理>常规设置>分析范围。
忽略文件
我们建议您从库中排除生成的代码,源代码等。有四种不同的方法可以将分析范围缩小到与开发团队相关的源代码。您可以将它们组合在一起以调整分析范围。此外,我们会自动从分析中排除项目文件中描述的.gitignore文件。可以禁用此行为。请参见sonar.scm.exclusions.disabled在分析参数的详细信息页面。
来源目录
设置sonar.sources属性以将分析范围限制为某些目录。
文件后缀
大多数语言插件提供了一种将分析范围限制为与一组扩展匹配的文件的方法。转至管理>常规设置> [语言]以设置文件后缀属性。
选择文件
您的第一道防线在您的分析中具有明确定义的文件集是您的sonar.sources价值。对于使用Maven,Gradle或MSBuild构建和分析的项目,此值将自动定义为具有通常彻底且理智的值。对于其他项目,您希望确保sonar.sources设置为实际包含源文件的项目子目录。将它设置为.比大多数人想要的更广泛的网络。
一旦你得到了所有的文件在你的分析,你想,它的时间来看看你是否有你宁愿留下任何文件了您的分析,比如JavaScript库,以及生成的文件。这些可以通过排除进行处理。指定排除意味着您的sonar.sources目录下的所有内容都将包含在分析中,但具有与您的排除正则表达式匹配的路径的文件除外。
要使用排除项来分析除指定文件之外的所有内容,请转至管理>常规设置>分析范围>文件。
源文件排除(sonar.exclusions) - 排除源代码文件
测试文件排除(sonar.test.exclusions) - 排除测试文件
只需sonar.sources仔细设置即可满足绝大多数需求。通过添加一些简单的排除,可以满足大多数其他需求。在一些极端情况下,有必要明确说明分析中包含的内容并忽略其他所有内容,但这不是正常情况,设置内容不应该是您在配置新项目时首先尝试的内容。
要使用排除项仅分析文件的指定子集sonar.sources,请转至管理>常规设置>分析范围>文件。
源文件包含(sonar.inclusions)
测试文件包含(sonar.test.inclusions)
您可以在项目级别和全局级别设置这些属性。
∨ 展开