zoukankan      html  css  js  c++  java
  • 集成TFS Build生成与SonarQube获取代码分析结果

    软件项目在开发过程中,往往由于任务重、时间紧等原因忽略软件代码的质量和规范检查,只注重软件功能的开发和交付。等软件交付上线以后,由于代码质量导致的问题会耗费开发和运维人员的大量时间。研发表明,项目上线以后在生产环境中修复一个Bug,将耗费三倍于开发过程中修复该Bug所耗费的时间。由此可见,需要在开发过程中不断提高代码质量,避免潜在的问题,减少项目交付以后的技术负债。

    在软件开发过程中检测代码质量,持续集成构建无疑是最好的选择。本文建介绍如何利用TFS的持续构建与代码质量分析工具SonarQube之间的集成,实现实时分析代码质量,帮助开发人员在开发过程中提高代码质量。

    一、必备工具

    本文中作者使用了下列软件产品:

    - Microsoft Visual Studio Team Foundation Server 2015.1 https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx 

    - SonarQube 5.3 http://www.sonarqube.org/downloads/ 

    - SonarQube Scanner for MSBuild 2.0 http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Scanner+for+MSBuild 

    - SonarQube C# Plugin http://docs.sonarqube.org/display/PLUG/C%23+Plugin 

    二、安装SonarQube

    这里介绍如何在Windows Server 2012上,使用SQl Server 2014数据库安装和配置SnoarQube服务器。如果你已经拥有了一个SonarQube服务器,则可以忽略这一章节。

    至于Team Foundation Server的安装,过程比较复杂,并不是本文关注的重点,你可以参考微软的官方文档https://msdn.microsoft.com/en-us/Library/vs/alm/TFS/setup/overview 安装和配置TFS服务器。

    下载和安装Java JDK

    SonarQube是一个基于Java的应用服务器,需要首先在服务器上下载和配置JDK http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html 

    安装运行JDK以后,还需要做下面的几项配置:

    - 添加服务器环境变量JAVA_HOME, 内容为Java的安装目录。例如我这里的安装目录为C:Javajdk1.8.0_11

    - 在服务器环境变量Path中添加Java bin的目录,例如C:Javajdk1.8.0_11in

    下载SonarQube安装程序

    SonarQube是一个开源程序,可以从官网下载http://www.sonarqube.org/downloads/  我这里下载的是目前的最新版本5.3。
    下载以后建软件解压缩到服务器的本地文件夹中,例如我这里解压缩的目录为C:sonarqube-5.3。然后按照下面的步骤配置SonarQube服务器:

    1. 在SQL Server数据库中创建一个空的名称为sonar数据库,用于存储SonarQube的数据。

    2. 在SQL Server数据库中创建一个SQL Server账户sonar,密码sonar,并将该账户赋予上述数据库的dbowner权限,用于SonarQube服务器读取数据。

    3. 修改SonarQube服务器的配置文件

    修改配置文件:C:sonarqube-5.3confsonar.properties

    删除下面的代码行注释标志#,并填写访问数据库的账户和密码,

    sonar.jdbc.username=sonar

    sonar.jdbc.password=sonar

    删除下面的代码行注释标志#

    sonar.jdbc.url=jdbc:sqlserver://tfsdb;databaseName=sonar

    配置C Sharp插件

    下载SonarQube C# Plugin http://docs.sonarqube.org/display/PLUG/C%23+Plugin ,并将其复制到SonarQube的插件目录下:C:sonarqube-5.3extensionsplugins

    注意,在SonarQube服务器启动以后,这个目录会自动生成其他默认的插件文件,例如Java, Git, SVN等插件。

    启动SonarQube服务器

    可以通过命令行的方式启动SonarQube服务器,也可以将SonarQube服务器配置成服务的方式,让其跟随服务器自动启动。这里介绍命令方式启动SonarQube服务器。

    以管理员身份运行Windows命令行窗口,并导航到SonarQube服务器的启动目录:C:sonarqube-5.3inwindows-x86-64

    运行启动命令StartSonar.bat后,如果配置正确,你会看到下面的窗口。

    image

    Figure - 启动SonarQube

    此时打开浏览器,在地址栏中输入SonarQube的默认网站地址http://SonarServer:9000 ,你会看到下面的窗口

    image

    Figure – SonarQube默认首页

    使用系统的默认管理员账户admin/admin登录系统,就可以完成管理员的任何工作了。

    三、安装和配置TFS生成服务器

    配置vNext生成服务器

    可以通过TFS的XAML生成或者vNext生成,实现SonarQube的的代码分析。由于XAML是一种趋于淘汰的生成技术,这个示例中我们使用TFS最新的vNext配置SonarQube。首先需要按照下面的方法配置一台vNext生成服务器:

    SNAGHTMLc94c49

    Figure - 下载生成服务器配置程序

    image

    Figure - 以管理员身份运行配置程序ConfigureAgent.cmd,后面的截图略

    配置SonarQube Scanner Runner for MSBuild

    下载SonarQube Scanner for MSBuild 2.0 http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Scanner+for+MSBuild,并执行下面的操作:

    1. 将文件解压缩到这个目录C:sonarqube-5.3in

    2. 在环境变量的Path中添加这个路径:C:sonarqube-5.3in, 确保在任意位置可以运行msbuild.sonarqube.runner.exe(如下图)

    image

    3. 修改配置文件C:sonarqube-5.3inSonarQube.Analysis.xml

    修改Runner的XML配置文件,填写访问SonarQube的账户和密码

    <Property Name="sonar.host.url">http://SonarServer:9000/</Property>

    <Property Name="sonar.login">admin</Property>

    <Property Name="sonar.password">admin</Property>

    四、配置生成定义

    为TFS的团队项目添加服务连接

    image

    Figure - 为团队项目添加Generic连接

    image

    Figure - 填写SonarQube服务器的连接信息

    在SornarQube中创建一个项目,映射TFS中的生成

    安装SonarQube的官方文档,需要在TFS生成定义中需要使用这里创建项目使用的项目名称密钥,以便生成任务将分析结果上传到SonarQube对应的项目中。

    但是在实际操作中发现,这一步是可以忽略的,TFS的生成任务会在SonarQube中自动创建对应的项目。

    image

    Figure – 在SonarQube中创建项目

    在生成定义中添加SonarQube for MSBuild任务

    注意任务的排列顺序,将Begin Analysis任务放在编译之前,将End Analysis任务放在测试之后。

    image

    Figure - 在生成任务中配置SonarQube的分析任务

    运行生成,查询SonarQube分析结果

    配置好生成定义以后,启动生成,可以看到MSBuild的生成任务已经将代码的分析结果发送到了SonarQube服务器上。

    image

    Figure - 生成运行结果

    image

    Figure – C#项目代码的分析结果

    至此,配置过程结束。

    http://www.cnblogs.com/danzhang/  ALM MVP 张洪君

  • 相关阅读:
    Windows 科研软件推荐
    有关Python 包 (package) 的基本知识
    《Using Python to Access Web Data》Week4 Programs that Surf the Web 课堂笔记
    Coursera助学金申请模板
    《Using Databases with Python》 Week2 Basic Structured Query Language 课堂笔记
    Jupyter 解决单个变量输出问题
    解决 pandas 中打印 DataFrame 行列显示不全的问题
    《Using Python to Access Web Data》 Week3 Networks and Sockets 课堂笔记
    缓存击穿及解决方案
    jvm垃圾收集器
  • 原文地址:https://www.cnblogs.com/danzhang/p/5205610.html
Copyright © 2011-2022 走看看