Jenkins 与 SonarQube 的集成

我们身处现代世界,我们的生活想要有更好的品质,并在更容易的介绍中提供复杂的解决方案。我会说 SonarQube 是有助于提高项目质量并在项目增长时防止未来出现不可预测问题的引擎之一。

不幸的是,很难找到真正的指南如何设置 SonarQube 并将其与 Jenkins 集成。2021 年的几乎所有指南都已过时,这也是创建此主题的原因之一。

我将解释如何轻松地将 CI/CD 工具 Jenkins 与 SonarQube 集成以评估您的资源。

概述

Jenkins是一个免费的开源自动化服务器。它有助于自动化与构建、测试和部署相关的软件开发部分,促进持续集成和持续交付。它是一个基于服务器的系统,在 Apache Tomcat 等 servlet 容器中运行。它支持版本控制工具,包括 AccuRev、CVS、Subversion、Git、Mercurial、Perforce、ClearCase 和 RTC,并且可以执行基于 Apache Ant、Apache Maven 和 sbt 的项目以及任意 shell 脚本和 Windows 批处理命令。

SonarQube ® 是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与您现有的工作流程集成,以实现跨项目分支和拉取请求的持续代码检查。

SonarQube 配置

生成令牌

SonarQube UI 界面可以使用User > My Account > Security中的设置生成新令牌

页面底部的表单允许您生成新令牌。单击生成按钮后,您将看到生成的令牌值。很快复制它;一旦您关闭通知,您将无法查看和更改它。

jenkins配置

首先需要安装SonarQube Scanner插件SonarQube Scanner | Jenkins plugin

安装插件的最简单方法是通过 UI管理 Jenkins >管理插件视图,Jenkins 环境的管理员可以使用该视图。

当安装SonarQube Scanner插件时,需要添加带有生成令牌的 Sonar 凭据。从 Jenkins 页面单击管理 Jenkins > 管理凭据

管理 Jenkins > 配置系统 > SonarQube 服务器

您应该添加 SonarQube 服务器 URL 并选择令牌名称

管理 Jenkins > 全局工具配置

sonar扫描的安装

jenkins管道示例

这是 Jenkins maven 管道的示例,它能够构建代码、分析并与 SonarQube 质量门进行比较。

如果代码没有通过质量门,构建将失败。

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929"><em>#!groovy
</em>管道 {
代理<strong>任何
</strong>环境 { 
   GIT_COMMIT_SHORT = sh( 
     script: "printf \$(git rev-parse --short ${GIT_COMMIT})", 
     returnStdout: <strong>true
</strong>     ) 
}
工具 { 
   maven 'maven' 
   jdk 'java' 
}
阶段{
  阶段('构建项目'){
    步骤{ 
      sh'''mvn安装''' 
    } 
  }
  阶段('SonarQube分析'){
    环境{ 
      SCANNER_HOME =工具'Sonar-scanner' 
    }
    步骤{ 
    withSonarQubeEnv(credentialsId:'声纳-credentialsId',安装名称:'声纳') {
         sh '''$SCANNER_HOME/bin/sonar-scanner \ 
         -Dsonar.projectKey=projectKey \ 
         -Dsonar.projectName=projectName \ 
         -Dsonar.sources=src/ \ 
         -Dsonar.java.binaries=target/classes/ \ 
         -Dsonar. excludes =src/test/java/****/*.java \ 
         -Dsonar.java.libraries=/var/lib/jenkins/.m2/**/*.jar \ 
         -Dsonar.projectVersion=${BUILD_NUMBER} -${GIT_COMMIT_SHORT}''' 
       } 
     } 
} 
   stage('SQuality Gate') { 
     steps { 
       timeout(time: 1, unit: 'MINUTES') { 
       waitForQualityGate abortPipeline: <strong>true
</strong>        } 
  } 
} 
} 
}</span></span></span>

结果:

结果,您将看到带有分析结果的 SonarQube 仪表板

正如您在现有主题中所见,SonarQube 易于设置和配置。示例展示了如何将其与现有的 CI/CD 流程集成。从初始构建开始 SonarQube 评估您的应用程序。它定义了差距、错误并展示了几种编程语言(java、.Net、js 等)编码的最佳实践。

SonarQube 有助于使您的项目更安全,防止易受攻击并使您的代码质量更高。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meta.Qing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值