Windows系统配置SonarQube本地服务

Windows系统配置SonarQube本地服务

SonarQube简介

Windows系统配置SonarQube本地服务_第1张图片
SonarQube

SonarQube 是一个用于管理源代码质量开放平台,可以从多个维度检测代码质量,快速的定位代码中潜在的或者明显的 Bug、错误,提供重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug、注释和软件设计报告。支持包括 Java、Python、Php、C/C++、C#、HTML、JavaScript、PL/SQL、Objective C 等二十多种编程语言的代码质量管理与检测。通过插件机制,SonarQube可以继承不同的测试工具,代码分析工具,以及持续集成工具。可与IDE(如:Eclipse、IDEA等)集成使用。

SonarQube 并不是简单地直接将各种质量检测工具(例如 FindBugs,PMD 等)的结果展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理。更多相关介绍不在此赘述。


SonarQube架构

引用SonarQube官网提供的架构图,


Windows系统配置SonarQube本地服务_第2张图片
SonarQube 架构

通过图中描述整个SonarQube的分析分为几个部分:

  • 待分析的项目源代码
  • SonarQube Scanner 源代码分析工具
  • SonarQube Server 提供服务,用来提供分析报表及解决方法
  • SonarQube Database 相关分析数据的持久化存储

本文则根据主要描述,记录本地Windows下SonarQube Server及Databse的配置。主要环境如下:

  • Windows 10
  • SonarQube 6.7 LTS
  • MySQL 5.7.21
  • JDK1.8.0_152
  • Maven 3.5.3

SonarQube服务环境配置

基本环境要求

本文使用的版本为 SonarQube 6.7.5 LTS , 官方下载地址。安装的基本要求如下:

  • 运行SonarQube的唯一先决条件是在您的计算机上安装Java(Oracle JRE 8或OpenJDK 8
  • SonarQube服务器需要至少2GB的RAM才能有效运行
  • 需要的磁盘空间量取决于使用SonarQube分析的代码量
  • MySQL 5.6 +,仅支持InnoDB存储引擎,但不支持MyISAM
  • 要获得SonarQube提供的完整体验,必须在浏览器中启用JavaScript,IE11+,其他浏览器建议最新版本

更多环境要求,见官方文档官方,详见。
另,需要分析Maven项目时,需要本地下载配置Maven,版本Maven 3.0+。


SonarQube环境配置

官网下载SonarQube后,解压到任意目录(建议,非中文目录),目录结构大致如下:

Windows系统配置SonarQube本地服务_第3张图片
SonarQube 目录结构

各目录作用如下:

  • bin 此目录放置各操作系统(LInux、Windows、MacOS)用于启动 SonarQube 服务的工具、脚本;
  • conf 此目录存放SonarQube相关配置文件;
  • data 此目录包含嵌入式数据库(H2数据库引擎)的数据,建议只用于测试和演示;
  • elasticsearch 此目录放置elasticsearch检索引擎相关内容;
  • extensions 此目录存放SonarQube的插件、 扩展jar 包;
  • lib 此目录存放SonarQube所依赖的 jar 包;
  • logs 此目录存放SonarQube相关日志信息;
  • tmp此目录包含服务器所需的临时数据,服务器启动时不要清理;
  • web 此目录存放 SonarQube web 服务的静态资源。

SonarQube服务数据库配置

SonarQube 支持大多数主流关系型数据库(例如 Microsoft SQL Server, MySQL, Oracle, PostgreSQL 等),默认使用H2数据库,可以直接运行启动,此处配置MySQL数据库。

  1. MySQL创建数据库

     CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
    
  2. 分配用户及权限

     
         CREATE USER 'sonar' IDENTIFIED BY 'sonar';
         GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; 
         GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
      FLUSH PRIVILEGES;
      
    
  3. 修改SonarQube配置文件
    找到 ..\sonarqube-6.7.5\conf 目录下的 sonar.properties,首先搜索 # User credentials. 配置JDBC连接的用户名及密码(此处为上步创建的用户):

     sonar.jdbc.username=sonar
     sonar.jdbc.password=sonar
     
    

    搜索 MySQL 5.6 or greater ,配置数据库链接 URL :

     sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
    
    

    到此完成了 MySQL 的简单配置

    Windows系统配置SonarQube本地服务_第4张图片
    SonarQube 配置MySQL

注意: SonarQube支持的为InnoDB引擎,可以在MySQL配置文件内的 [mysqld] 下配置 default-storage-engine=INNODB 来实现创建的表默认使用 InnoDB 引擎。


启动服务

在目录 ..\sonarqube-6.7.5\bin\windows-x86-64 下,双击 StartSonar.bat 启动服务,出现 [o.s.a.SchedulerImpl] Process[es] is up 提示时,表示 elasticsearch 启动成功

Windows系统配置SonarQube本地服务_第5张图片
SonarQube 服务启动

此时,可以在浏览器内访问 http://localhost:9000 来登陆SonarQube管理页面 (注意,运行期间不要关闭命令行

Windows系统配置SonarQube本地服务_第6张图片
enter description here

首次启动时,会在配置MySQL数据库内生成相关的表及初始化数据

Windows系统配置SonarQube本地服务_第7张图片
SonarQube 数据库初始化

到此SonarQube服务启动成功,如想修改访问端口等内容,在 ..\sonarqube-6.7.5\conf\sonar.properties文件内修改。

在目录 ..\sonarqube-6.7.5\bin\windows-x86-64 下可以看到多个bat批处理文件

  • InstallNTService.bat 安装sonarqube为系统服务
  • StartNTService.bat 启动sonarqube系统服务
  • StartSonar.bat 命令行启sonarqube服务(关闭命令行即关闭服务)
  • StopNTService.bat 停止sonarqube系统服务
  • UninstallNTService.bat 卸载sonarqube系统服务

为了方便,且防止命令行意外关闭导致服务停止等情况,可以通过管理员方式运行 InstallNTService.bat ,将SonarQube服务添加到系统服务中, 或使用 sc 命令自行添加。如出现服务添加到系统服务后,启动立即停止的情况,则通过查看 ..\sonarqube-6.7.5\log 目录下的日志来查看问题,如无日志,尝试卸载服务,尝试使用 sc 命令添加服务。更多 sc 命令内容参看百度百科


插件安装

启动服务后,可以在SonarQube管理页面的应用市场内添加需要的插件,如汉化包、代码分析插件:

  • Chinese Pack 汉化包插件
  • Findbugs
  • Checkstyle
  • PMD

服务页面点击登陆,输入用户名密码 ,默认为 admin / admin, 默认密码可以在 ..\sonarqube-6.7.5\conf\sonar.properties文件内修改。

首次登陆账号,会提示配置分析的项目及token,可跳过

Windows系统配置SonarQube本地服务_第8张图片
SonarQube 首次启动配置
Windows系统配置SonarQube本地服务_第9张图片
SonarQube 首次启动配置2

配置完成后,点击 Finish..,进入操作页面

Windows系统配置SonarQube本地服务_第10张图片
SonarQube 操作页面

下面安装 Chinese Pack (汉化包),演示插件安装。

导航栏选择 Administration跳转到Administration页面,选择 Marketplace 进入应用市场

Windows系统配置SonarQube本地服务_第11张图片
SonarQube 安装汉化包

安装完成后,出现类似如下提示,点击 restart 重启服务即可

SonarQube 安装完成提示

等待几秒钟,服务会自动重启,重新登录后,可以看到汉化结果

Windows系统配置SonarQube本地服务_第12张图片
SonarQube 汉化结果

其他插件安装类似如上操作,根据需要选择安装即可。


安装相关问题记录及处理

启动服务时,提示 “Unable to start JVM”

出现类似提示时,可以尝试在文件 ..\sonarqube-6.7.5\conf\wrapper.conf 中添加Java JDK的路径,一般正常配置了Java环境变量,此处不需要配置。

Windows系统配置SonarQube本地服务_第13张图片
SonarQube Java JDK问题

启动服务时,提示“另一个程序正在使用此文件,进程无法访问。”

启动服务时,出现类似提示,是由于 Java(TM) Platform SE binary此后台进程没有关闭,导致jar包被加载占用,无法访问。

Windows系统配置SonarQube本地服务_第14张图片
SonarQube Java后台占用

此时使用任务管理器,关闭对应进程即可。

Windows系统配置SonarQube本地服务_第15张图片
SonarQube Java后台占用问题处理

汉化包插件安装失败

安装汉化包,重启后,一直重启状态,或出现其他错误提示,可以尝试在 此处 下载对应SonarQube版本的汉化包,下载完成后,提取jar包,放置到目录 ..\sonarqube-6.7.5\extensions\plugins 下,重启服务即可。

你可能感兴趣的:(Windows系统配置SonarQube本地服务)