SonarQube

本文介绍如何安装和配置SonarQube,并通过示例演示如何利用SonarQube分析代码质量。涵盖SonarQube的安装步骤、数据库配置、中文语言包安装及环境变量设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装、配置以及使用。

准备工作;

1、jdk(不再介绍)

2、sonarqube:http://www.sonarqube.org/downloads/

3、SonarQube+Scanner:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.5.zip

4、mysql数据库(不再介绍)

一、安装篇

1.下载好sonarqube后,解压打开bin目录,启动相应OS目录下的StartSonar。如本文演示使用的是win的64位系统,则打开D:\sonar\sonarqube-5.3\sonarqube-5.3\bin\windows-x86-64\StartSonar.bat

2.启动浏览器,访问http://localhost:9000,如出现下图则表示安装成功。

二、配置篇

1.打开mysql,新建一个数据库。

2.打开sonarqube安装目录下的D:\sonar\sonarqube-5.3\sonarqube-5.3\conf\sonar.properties文件

3.在mysql5.X节点下输入以下信息

复制代码
sonar.jdbc.url=jdbc:mysql://172.16.30.228:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=gmsd
sonar.jdbc.password=gmsdtrade
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
复制代码

url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码,login是sonarqube的登录名,sonar.password是sonarqube的密码

4.重启sonarqube服务,再次访问http://localhost:9000,会稍微有点慢,因为要初始化数据库信息

5.数据库初始化成功后,登录

6.按照下图的点击顺序,进入插件安装页面

7.搜索chinese Pack,安装中文语言包

8.安装成功后,重启sonarqube服务,再次访问http://localhost:9000/,即可看到中文界面

三、使用篇

1.打开D:\sonar\sonar-scanner-2.5\conf\sonar-runner.properties文件

2.mysql节点下输入以下信息

sonar.jdbc.url=jdbc:mysql://172.16.30.228:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=gmsd
sonar.jdbc.password=gmsdtrade

注意:如果测试项目与服务器不在同一台机子,则需要添加服务器的IP:

#----- Default SonarQube server
sonar.host.url=http://XXX.XXX.XXX.XXX:9000

3.配置环境变量

a.新建变量,name=SONAR_RUNNER_HOME。value=D:\sonar\sonar-scanner-2.5

b.打开path,输入%SONAR_RUNNER_HOME%\bin;

c.sonar-runner -version,出现以下信息,则表示环境变量设置成功

4.打开要进行代码分析的项目根目录,新建sonar-project.properties文件

5.输入以下信息

复制代码
# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# this is the name displayed in the SonarQube UI
sonar.projectName=apiautocore
sonar.projectVersion=1.0
 
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set. 
# If not set, SonarQube starts looking for source code from the directory containing 
# the sonar-project.properties file.
sonar.sources=src
 
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
复制代码

其中:projectName是项目名字,sources是源文件所在的目录

6.设置成功后,启动sonarqube服务,并启动cmd

7.在cmd进入项目所在的根目录,输入命令:sonar-runner,分析成功后会出现下图

8.打开http://localhost:9000/,我们会看到主页出现了分析项目的概要图

9.我们点击项目,选择问题链接,会看到分析代码的bug,哇,好多

10.选择一个最严重的bug,看看

原来是这个地方会出现空指针异常,原因是我没有进行初始化就使用这个变量了。Over

预知更多使用,请登录官网自行学习。

http://www.sonarqube.org/

http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Scanner

******************************************************************************************************************************************
作者:乔叶叶
博客地址:http://www.cnblogs.com/qiaoyeye/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
******************************************************************************************************************************************

来源:http://www.cnblogs.com/qiaoyeye/p/5249786.html

<think>我们正在处理一个关于SonarQube代码质量管理平台使用指南的查询。根据提供的引用信息,我们可以整理出以下内容: 1. SonarQube是一个支持多种编程语言的代码质量管理平台,可以从七个维度检测代码质量(引用[1])。 2. 安装SonarQube需要下载、安装MySQL、SonarScanner等组件(引用[2])。 3. 使用SonarQube涉及执行单元测试、计算代码覆盖率、执行代码静态扫描并导入结果(引用[2])。 4. 安全方面,使用`-Dsonar.login`参数提供令牌以访问SonarQube服务器(引用[3])。 5. 搭建SonarQube平台时,需要创建专用用户并设置权限(引用[4])。 用户请求的是使用指南,因此我们将按照以下结构组织回答: - 介绍SonarQube及其核心功能 - 安装与配置步骤 - 基本使用方法 - 安全注意事项 同时,根据系统指令,我们需要在行内数学表达式使用`$...$`,独立公式使用`$$...$$`(尽管在本文中可能很少用到数学公式,但如果有变量或表达式,我们会遵守规则)。另外,回答使用中文,并在引用处添加引用标识。 最后,生成相关问题。 注意:引用信息中有些内容不完整(如下载链接缺失),我们将根据已知信息回答,避免猜测。</think>### SonarQube 代码质量管理平台使用指南 #### 一、核心功能概述 SonarQube 是支持 20+ 编程语言(Java/C#/C++/JavaScript 等)的代码质量管理平台[^1],提供以下核心能力: 1. **代码规范检查**:通过 PMD/CheckStyle/FindBugs 等工具强制代码标准[^1] 2. **缺陷检测**:识别空指针、资源泄漏等潜在风险[^1] 3. **复杂度分析**:检测高复杂度方法(公式:$Cyclomatic\ Complexity > 10$)[^1] 4. **重复代码检测**:标记重复率超过 5% 的代码片段[^1] 5. **测试覆盖度**:统计单元测试覆盖率(公式:$\frac{Executed\ Lines}{Total\ Lines} \times 100\%$)[^2] #### 二、安装部署流程 1. **环境准备**: ```bash # 创建专用用户(推荐) adduser sonarUser passwd your_password # 设置复杂密码 ``` 2. **安装组件**: - 下载 SonarQube 包解压至 `/usr/local/sonarqube`[^4] - 安装 MySQL 并创建数据库[^2] ```sql CREATE DATABASE sonar CHARACTER SET utf8; ``` 3. **权限配置**: ```bash chown -R sonarUser:sonarUser /usr/local/sonarqube su sonarUser # 切换用户 ``` 4. **启动服务**: ```bash ./bin/linux-x86-64/sonar.sh start # 控制脚本[^4] ``` #### 三、基础使用步骤 1. **扫描配置**: ```properties # sonar-project.properties 示例 sonar.projectKey=my_project sonar.sources=src sonar.host.url=http://localhost:9000 sonar.login=your_token # 安全令牌[^3] ``` 2. **执行扫描**: ```bash sonar-scanner \ -Dsonar.login=your_token \ # 身份验证[^3] -Dsonar.coverageReportPaths=report.xml # 覆盖率报告 ``` 3. **查看报告**: - 访问 `http://服务器IP:9000` - 查看七维度质量指标(规范/缺陷/复杂度/重复率/注释/测试/设计)[^1] #### 四、安全注意事项 1. **访问控制**: - 必须使用 `-Dsonar.login` 传递有效令牌[^3] - 生产环境建议启用 HTTPS 2. **权限隔离**: - 专用用户运行服务(如 `sonarUser`)[^4] - 限制数据库账户权限 #### 五、高级功能扩展 1. **语言支持**: - 安装 GoLang/Python 等语言插件[^2] 2. **CI/CD 集成**: ```yaml # Jenkins 示例 stages: - name: SonarScan script: sonar-scanner -Dsonar.qualitygate.wait=true ``` 3. **质量阈设置**: - 定义覆盖率阈值(如 ≥80%) - 阻断复杂度超标代码合并 > **运维提示**:服务管理命令 > `./sonar.sh stop` # 停止服务 > `./sonar.sh restart` # 重启服务[^4] --- ### 相关问题 1. 如何为特定编程语言(如 Go 或 Python)配置 SonarQube 扫描规则? 2. SonarQube 的质量阈(Quality Gate)如何设置才能阻断不合规代码合并? 3. 在持续集成流水线中集成 SonarQube 的最佳实践是什么? 4. SonarQube 的漏洞数据库更新机制是怎样的?如何保证规则时效性? 5. 高并发场景下 SonarQube 服务器如何优化性能? [^1]: SonarQube 代码质量管理平台概念与功能维度 [^2]: SonarQube 环境搭建与多语言支持方法 [^3]: `-Dsonar.login` 参数的安全验证作用 [^4]: 用户权限控制与服务管理命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值