Sonarqube 与构建工具的关系

Relation between Sonarqube and build tools

对于大多数使用过这些工具的人来说,这可能是一个基本问题,但我最近去面试,面试官问我 "What's Sonaqube","What's Maven" 我基本上只是根据在采访之前进行了各种 Google 搜索,但随后出现了杀手问题,“Sonarqube 和构建自动化工具之间有什么关系?” "How does "Sonarqube 与 Maven 一起工作", "为什么我们将 Sonarqube 与构建自动化工具一起使用".....我从字面上看僵住了,无法回答他们,并在我作为初级开发人员的职业抱负中死了一点!

所以我在这里,任何人都可以在这些关键问题上启发我,以便进行任何其他采访。

Sonarqube 是我们在构建链中使用的代码质量工具之一。它有助于计算代码的技术债务、单元测试用例覆盖的代码量、错误、漏洞,基本上它有助于构建干净的代码。

  1. 您可以使用不同的约定为登上 Sonarqube 的每个项目自定义规则。

  2. 在构建链中,Sonarqube 对于敏捷的团队起着至关重要的作用,并且希望在漏洞甚至影响开发实例之前找出大部分漏洞。因此它与 Teamcity、Jenkins 等连续集成工具集成...并作为部署阶段之前的构建步骤之一触发。

  3. 开发人员和管理层都使用它来查看每个版本之间甚至各个版本之间所做的改进。
  4. Sonar 代码分析可以定义为 Maven 中的一项任务,我们可以有一个单独的 sonar.properties 文件来列出用于在公共门户中发布结果的参数。还可以从构建配置中指定参数,以便在项目使用的 CI 工具中生成报告。

这是了解更多信息的便捷指南 - https://www.infobip.com/en/engineering/improving-code-quality-with-sonarqube

行家

Maven 是一种构建自动化工具,主要用于 Java 个项目。

如果当前的团队在没有 maven 的情况下开发 java 应用程序,那将是不可思议的。没有maven,需要做很多工作:

  • 将 java 库存储在源代码附近,增加每个 java 项目的磁盘大小。
  • 在 google 中搜索新库并手动下载它们。
  • 手动编译你的罐子、战争、耳朵等
  • 工件版本将是一场噩梦
  • 手动调用单元测试
  • 手动与 SonarQube 等外部平台或 tomcat、widfly 等服务器集成
  • 以及与 java 应用程序的构建、测试和部署相关的数十项任务。

声呐

SonarQube 是一个用于持续检查代码质量的开源平台。该平台有助于检测不良做法,例如:空 try catch、空指针、条件错误等

Sonarqube 和 Build 自动化工具有什么关系?为什么我们将 Sonarqube 与构建自动化工具一起使用?

构建工具用于自动化与软件生命周期、devops、连续 delivery/deployment 等相关的任务。此阶段之一称为 构建。在这个阶段,强烈推荐使用 SonarQube 检查源代码,以提高质量、检测错误和问题并减少技术疑虑。这是build tools和Sonar的关系

Sonarqube 如何与 Maven 一起工作?

基本上,您可以使用先前配置的 maven 命令在 SonarQube 仪表板上生成我们项目的报告。

阅读此 post 以快速回顾 Maven 和 Sonar 集成:https://blog.knoldus.com/integrate-maven-project-sonarqube/

  1. SonarQube 是一个代码质量插件,可用于检查您的 代码。
  2. 您可以在您的 Maven 构建中添加 SonarQube 插件来分析您的代码。
  3. 要在构建服务器 (hudson/jenkins/bamboo) 中显示结果,您还需要构建服务器的 SonarQube 集成插件。
  4. 除此之外,您还可以在构建服务器中使用质量门让您的 如果代码不符合指定的质量要求,则构建失败。