SonarQube - 如何使用

标签 sonarqube checkstyle sonar-runner software-quality

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

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

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

最佳答案

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

  • SonarQube 服务器 .它包含一个数据库(例如 MySql)和一个
    嵌入式网络服务器(Tomcat)。 SonarQube 服务器存储
    分析结果(指标),但不执行代码
    分析。该服务器提供了一个 Web UI,显示了仪表板
    项目、各种指标并深入研究代码、管理选项。它使用可插拔架构——您可以通过插件添加/删除功能。
  • 在开发者机器上运行代码分析的程序 .有以下选择: (a) 如果他们使用 Eclipse 或 IntelliJ,他们可以使用各自的 SonarLint 插件,该插件提供配置属性、运行分析的菜单选项、显示违规的 View 等; (b) 开发人员还可以通过 maven (mvn sonar:sonar) 或 gradle (gradlew sonarqube) 运行代码分析; (c) 开发人员可以通过名为 SonarQube Runner 的程序执行各种代码分析。
    在开发人员机器上运行分析的所有这些程序选项都需要配置为与 SonarQube 服务器通信。例如,当您使用 SonarLint 在 IntelliJ 中运行代码分析时,指标将上传到服务器。此服务器通常由所有开发人员共享,但也可以是 localhost。
  • 在 CI/CD 服务器上运行代码分析的程序 .构建软件项目的作业/管道可以配置为运行 SonarQube 代码分析。它可以像在开发人员的机器上一样通过 maven 或 gradle 来完成,也可以通过插件来完成。有SonarQube CI plug-ins适用于 Jenkins、Hudson、Bamboo 等。根据项目的大小,您可能希望将代码分析配置为仅每天运行一次,而不是在每次代码提交或更改依赖项时运行。在 CI 服务器上执行的 SonarQube 代码分析同样会将生成的指标发送到 SonarQube 服务器。

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

    关于SonarQube - 如何使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20005196/

    相关文章:

    java - 我们添加到 Java 类以抑制文件长度的 "CHECKSTYLE"注释是什么?

    java - Sonar runner 执行期间出错,在 play 项目的 junit 测试中运行 Sonar runner 2.3 时出现 java.lang.NullPointerException

    SonarQube 以 143 退出

    mysql - sonarqube 将结果存储在数据库中花费的时间太长

    java - `checkstyle-suppressions.xml` 的位置?

    java - 如果缺少方法描述则显示警告

    sonarqube - Jacoco 报告了 Sonar 运行器未找到的路径

    java - 自己的 Sonar 插件 - 如何设置语言?

    .net - Sonar & Gallio : Gallio won't execute as there are no test projects

    spring - Sonar 提示 Spring Boot 配置