Sonarqube和构建工具之间的关系



对于大多数有过这些工具经验的人来说,这可能是一个基本问题,但我最近参加了一次面试,面试官问我"Sonaqube是什么"、"Maven是什么",我基本上只是在面试前根据各种谷歌搜索定义的,">Sonarqube和构建自动化工具之间有什么关系?">Sonarqube如何与Maven合作">为什么我们要将Sonarqu贝与构建自动化工具一起使用……我真的僵住了,无法回答这些问题,并在我作为初级开发人员的职业抱负中有点死了!

所以我来了,任何人都可以在接下来的任何其他采访中启发我这些致命的问题。

Maven

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

如果一个现有的团队在没有maven的情况下开发java应用程序,那将是不可思议的。如果没有maven,许多任务将是必要的:

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

声纳

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

  • https://raw.githubusercontent.com/jrichardsz/static_resources/master/sonarqube-null-detection.png
  • https://raw.githubusercontent.com/jrichardsz/static_resources/master/sonarqube-logger.png
  • https://raw.githubusercontent.com/jrichardsz/static_resources/master/sonarqube-issues-tracking-bugs.png

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

构建工具用于自动化与软件生命周期、开发、持续交付/部署等相关的任务。其中一个阶段被称为构建。在这个阶段,强烈建议使用SonarQube来检查源代码,以提高质量,检测错误;问题并减少技术疑虑。这就是构建工具和声纳之间的关系

Sonarqube如何与Maven合作

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

阅读这篇文章,快速回顾Maven&声纳集成:https://blog.knoldus.com/integrate-maven-project-sonarqube/

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

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

  1. 您可以自定义每个项目的规则,这些项目通过一组不同的约定登录到Sonarqube。

  2. 在构建链中,Sonarqube对敏捷团队起着至关重要的作用,他们希望在攻击Dev实例之前发现大多数漏洞。因此,它与Teamcity、Jenkins等Continous集成工具集成,并在部署阶段前作为构建步骤之一触发。

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

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

最新更新