SonarQube 搭建代码质量管理平台(二)

栏目: Java · 发布时间: 6年前

内容简介:通过从官方文档的根据操作系统

通过 SonarQube 搭建代码质量管理平台(一) 的介绍,如果每次都需要手动执行 sonar-scanner ,想想也是醉了,所以我们需要进一步完善 SonarQube 进行自动化代码分析。

从官方文档的 Scanners 部分可以看出,Scanner 支持 MSBuild、Maven、Gradle、Ant、Jenkins 等。本文将介绍使用 Jenkins 进行自动化代码分析, 测试项目的代码基于 .NET 开发,所以会用到 MSBuild 相关命令。

安装 Jenkins

根据操作系统 下载 Jenkins ,我使用的是 Windows ,直接都下一步就可以了。

Windows 环境下 Jenkins 安装后默认登录身份是 “本地系统”,会无法访问,所以需要修改登录身份,我这里使用的是账户方式

SonarQube 搭建代码质量管理平台(二)

启动成功后访问 http://localhost:8080/

Jenkins 配置 Github

  1. 在 Github 生成 Personal access tokens,设置 token 相关权限

    SonarQube 搭建代码质量管理平台(二) SonarQube 搭建代码质量管理平台(二)

  2. Jenkins 配置 GitHub Server

    Jenkins 安装后默认已包含 GitHub,在 “系统管理” => “系统设置” 中找到 Github,然后在 Credentials 处添加全局凭据,类型选 Secret text,Secret 处输入上一步生成的 access token

    SonarQube 搭建代码质量管理平台(二)

    SonarQube 搭建代码质量管理平台(二)

添加完成后可点击 Test connection 进行测试

如果使用的是 Gitlab,需要在 Jenkins 中安装 Gitlab 插件,全局凭据添加 GitLab API token,token 使用 Gitlab Account 下的 Private token, 其他配置基本类似

Jenkins 配置 SonarQube

  1. 在 SonarQube 中生成 Server authentication token

    登录 SonarQube 后,在 “My Account” => “Securiy” 中生成 toekn

    SonarQube 搭建代码质量管理平台(二) 重新进入这个页面之前生成的 token 就看不到的,只能看到一次,我呵呵

  2. 在 Jenkins 的管理插件中安装 SonarQube Scanner 插件

  3. 配置 SonarQube Sever,这部分和配置 GitHub Server 类似,在 “系统管理” => “系统设置” 中找到 SonarQube servers

    Name:随意;

    Server URL:为启动的 SonarQube 服务地址,我这里使用本地启动的默认地址 http://localhost:9000

    Server authentication token: 输入之前生成的 token;

    SonarQube 搭建代码质量管理平台(二)

  4. 配置 SonarScanner for MSBuild

    在 “系统管理” => “全局 工具 配置” 找到 SonarScanner for MSBuild(

    测试项目是基于 .NET ),官方提供了 .NET Framework 和 .NET Core 两个版本,我们可以先都加上,之后根据实际项目选择使用哪个。有两中方式配置 MSBUILD_SQ_SCANNER_HOME,可以选择自动安装或手动配置,手动配置需要单独下载,我使用的是手动配置方式

    SonarQube 搭建代码质量管理平台(二)

    Jenkins 任务配置

上面是 Jenkins 的一些全局配置,下面需要对单个任务进行配置。新建一个 “构建一个自由风格的软件项目” 类型的任务 “Test”

配置项目的仓库地址,这个项目就是要进行代码分析的项目,在 Credentials 处添加凭据,这里添加一个用户名密码类型的凭据( 其他类型的也可以,能访问这个仓库即可 )。在添加凭据后,会自动检测是否有效,如果无效会直接出现错误提示

SonarQube 搭建代码质量管理平台(二)

SonarQube 搭建代码质量管理平台(二)

在 “构建” 中增加构建步骤:

SonarQube 搭建代码质量管理平台(二)

  1. SonarScanner for MSBuild - Begin Analysis

    SonarScanner for MSBuild:选择基于 .NET Framework,因为 Test 项目是基于 .NET Framework;

    Project key: 在 SoanrQube 中的项目 key;

    Project name:在 SoanrQube 显示的项目名称,如果不填,则显示 Project key;

    Project version:版本号;

    Additional arguments:其他参数,比如可以设置只检测某种语言(/d:sonar.language=cs)、排除哪些文件(夹) 等, 参考

  2. 执行 Windows 批处理命令

    先通过 nuget restore( 如果没有安装 nuget 命令的需要提前安装 ) 还原依赖的 Nuget 包,然后使用 MSBuild 批处理命令重新生成项目。这一步 Build 可能会出现各种奇葩的问题,主要就是少了一些依赖包,建议在安装 Jenkins 的机器安装上 VS,然后将 MSBuild 加入环境变量,我的机器添加了两个路径:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
    C:\Program Files (x86)\NuGet
    
  3. SonarScanner for MSBuild - End Analysis

配置完成后保存,然后点击 “立即构建” 试试效果,构建成功后我们将通过 SonarQube UI 看到对 Test 项目的分析结果

SonarQube 搭建代码质量管理平台(二)

这就实现了将 Jenkins 与 SonarQube 关联起来,代码构建完成后会把结果发送到 SonarQube 中,我们还可以根据需要在 Jenkins 任务中设置构建执行时间,比如每天早上9点执行一次

SonarQube 搭建代码质量管理平台(二)

SonarQube 中有 Webhook 的功能,当接收到一次提交,可以将这次的分析结果发送给设置的 Webhook 地址,这样我们可以通过消息(比如短信、邮件、微信等)将有问题的分析结果及时的通知到相关负责人


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

免费

免费

克里斯•安德森 / 蒋旭峰、冯斌、璩静 / 中信出版社 / 2012-10 / 68.00元

一种商业模式既可以统摄未来的市场,也可以挤垮当前的市场——在我们这个现代经济社会里,这并不是一件不可能的事情。 “免费”就是这样的一种商业模式,它所代表的正是数字化网络时代的商业未来。 在《免费》这本书中,克里斯•安德森认为,新型的“免费”并不是一种左口袋出、右口袋进的营销伎俩,而是一种把货物和服务的成本压低到零的新型卓越能力。在20世纪“免费”是一种强有力的推销手段,而在21世纪它已经成为......一起来看看 《免费》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具