SonarQube - 它是如何使用的

Ale*_*vic 6 software-quality checkstyle sonar-runner sonarqube

我有一个简单的问题,可能有一个简单的答案,但我找不到它是什么.我们希望将SonarQube与Checkstyle和其他一些工具一起部署,但我们无法找到它是否适用于集中式服务器部署或每台开发人员机器?所有教程都显示在不同机器上的安装并在localhost中使用,而有一个公共实例示例,并且需求和规范肯定看起来像服务一样.

另一方面,我不知道开发人员如何在服务器上提交检查代码.

那么,简而言之,它是如何部署的?任何清单或类似的东西都会有很大的帮助.

Pau*_*son 14

SonarQube"运行时"架构有几个要素:

  1. SonarQube服务器.它包含一个数据库(例如,MySql)和一个嵌入式Web服务器(Tomcat).SonarQube服务器存储分析结果(指标),但不执行代码分析.此服务器提供Web UI,显示项目的仪表板,各种指标以及深入到代码,管理选项.
  2. 在开发人员计算机上运行代码分析的程序.有选项:(a)开发人员可以通过名为SonarQube Runner的程序执行各种代码分析; (b)如果他们使用Eclipse或InteliJ,他们可以使用相应的SonarQube插件,该插件提供配置属性,运行分析的菜单选项,显示违规的视图等; (c)开发人员也可以通过maven或ant运行代码分析 - 如果使用maven,你只需要sonar-maven-plugin,它会为你提供声纳:声纳目标.在开发人员计算机上运行分析的所有这些程序选项都需要配置为与SonarQube服务器通信.因此,例如,当您使用Eclipse SonarQube插件在Eclipse中运行代码分析时,度量标准将上载到服务器.此服务器通常由所有开发人员共享,但也可以是localhost.
  3. Progran在持续集成服务器上运行代码分析.构建软件项目的工作可以配置为运行SonarQube代码分析.它可以通过maven完成,就像在开发人员的机器上,或通过插件.Jenkins,Hudson,Bamboo等有SonarQube CI插件.根据项目的大小,您可能希望将代码分析配置为仅每天运行一次,而不是每次代码提交或更改依赖项.在CI服务器上执行的SonarQube代码分析同样会将生成的指标发送到SonarQube服务器.

SonarQube架构文档非常差(更不用说缺席),因此很难全局了解.我希望这有帮助.


bar*_*uin 9

SonarQube(以前只是"Sonar")是一个基于服务器的系统.当然,您可以将其安装在本地计算机上(硬件要求极低).但它是一个带有数据库的中央服务器.

分析由一些Sonar"客户端"软件执行,该软件可以是声纳转轮,声纳蚂蚁任务,声纳Eclipse插件等.分析结果可以自动上传到服务器,在那里可以通过声纳Web应用程序访问它们.

在具有许多开发人员的环境中,您应该运行构建服务器(例如Hudson或Jenkins),该服务器执行自动声纳分析,作为每晚构建的一部分.其他计划是可能的,但开发人员应该知道他们何时可以期待服务器端分析结果的更新.自动分析的结果可以通过声纳Eclipse插件显示在各个开发人员的Eclipse编辑器中.

Sonar的架构文档非常稀少.我找了一张图片来想象我刚刚描述的内容,却找不到一张......