SonarQube-它是如何使用的

SonarQube-它是如何使用的,sonarqube,checkstyle,sonar-runner,software-quality,Sonarqube,Checkstyle,Sonar Runner,Software Quality,我有一个简单的问题,可能有一个简单的答案,但我找不到它是什么。我们希望将SonarQube与Checkstyle和其他一些工具一起部署,但我们无法确定它是用于集中式服务器部署,还是在每台开发人员机器上部署?所有教程都显示了在单独的机器上安装并在本地主机中使用,同时还有一个公共实例示例,并且要求和规范与服务类似 另一方面,我不知道开发人员如何提交他们的代码来检查它是否在服务器上 简言之,它是如何部署的?任何清单或类似的东西都会有很大帮助 SonarQube(原名“Sonar”)是一个基于服务器的系

我有一个简单的问题,可能有一个简单的答案,但我找不到它是什么。我们希望将SonarQube与Checkstyle和其他一些工具一起部署,但我们无法确定它是用于集中式服务器部署,还是在每台开发人员机器上部署?所有教程都显示了在单独的机器上安装并在本地主机中使用,同时还有一个公共实例示例,并且要求和规范与服务类似

另一方面,我不知道开发人员如何提交他们的代码来检查它是否在服务器上

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

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

分析由一些Sonar“客户端”软件执行,这些软件可以是Sonar runner、Sonar ant任务、Sonar Eclipse插件等。分析结果可以自动上传到服务器,在服务器上可以通过Sonar Web应用程序访问

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

关于声纳的体系结构文档非常稀少。我已经寻找了一张图片来可视化我刚才描述的内容,但找不到一张…

SonarQube“运行时”架构有几个元素:

  • SonarQube服务器。它包含一个数据库(例如MySql)和一个 嵌入式web服务器(Tomcat)。SonarQube服务器存储 分析结果(度量),但不执行代码 分析。此服务器提供一个web UI,其中显示 项目、各种度量和深入到代码、管理选项。它使用可插入的体系结构——您可以通过插件添加/删除功能
  • 在开发人员计算机上运行代码分析的程序。有一些选项:(a)如果他们使用Eclipse或IntelliJ,他们可以使用相应的SonarLint插件,该插件提供配置属性、运行分析的菜单选项、显示冲突的视图等。;(b) 开发人员还可以通过maven(
    mvn sonar:sonar
    )或gradle(
    gradlew sonarqube
    )运行代码分析;(c) 开发人员可以通过名为SonarQube Runner的程序执行各种代码分析。 在开发人员机器上运行分析的所有这些程序选项都需要配置为与SonarQube服务器通信。例如,当您使用SonarLint在IntelliJ中运行代码分析时,这些度量将上载到服务器。此服务器通常由所有开发人员共享,但也可以是本地主机
  • 在CI/CD服务器上运行代码分析的程序。构建软件项目的作业/管道可以配置为运行SonarQube代码分析。它可以通过maven或gradle完成,就像在开发人员的机器上一样,也可以通过插件完成。詹金斯、哈德逊、竹子和其他人都有。根据项目的大小,您可能希望将代码分析配置为每天仅运行一次,而不是在每次提交代码或更改依赖项时运行。在CI服务器上执行的SonarQube代码分析同样会将生成的度量发送到SonarQube服务器

  • SonarQube体系结构文档非常差(更不用说没有),因此很难了解全局。我希望这有帮助

    多谢各位。现在,这更有意义了。我不确定我们是否需要构建服务器,因为我们不属于“许多开发人员”类别,而且我们是面向研究的。然而,我们希望提高我们的代码质量,所以我想这些工具是可行的。我们会考虑我们是否真的需要Sonar。如果您有多个开发人员,构建服务器是一个非常好的主意,因为它表明您的代码可以在您自己的个人开发工作站之外的其他地方工作。这个构建服务器可以只是一个“干净”的工作站(也就是说,没有人用它来做任何其他事情),运行像Jenkins这样简单的东西,每当你向版本控制系统的主分支提交新代码时,就会触发构建和质量分析。我当然不同意“许多开发人员”是拥有独立构建服务器的先决条件,除非“许多开发人员”意味着“不止一个”。