windows 系统安装sonarqube

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

官方网站:

https://www.sonarqube.org/

1. 使用前提条件

运行SonarQube的唯一先决条件是在您的计算机上安装Java(Oracle JRE 8或OpenJDK 8)。

注意: 在Mac OS X上,强烈建议安装Oracle JDK 8而不是相应的Oracle JRE,因为JRE安装未正确完全设置Java环境。

1.1 硬件要求

  1. SonarQube服务器的小型(个人或小团队)实例需要至少2GB的RAM才能有效运行,并且1GB的可用RAM用于操作系统。如果要为大型团队或Enterprise安装实例,请考虑以下其他建议。
  2. 您需要的磁盘空间量取决于您使用SonarQube分析的代码量。例如,SonarClube的公共实例SonarCloud拥有超过3.5亿行代码,有5年的历史。SonarCloud目前在集群Amazon EC2 m5.large实例上运行,每个节点分配50 Gb的驱动器空间。它处理19,000多个项目,大约有1400万个未解决的问题。SonarCloud在PostgreSQL 9.5上运行,它为数据库使用了大约250Gb的磁盘空间。
  3. SonarQube必须安装在具有出色读写性能的硬盘上。最重要的是,"data"文件夹包含Elasticsearch索引,当服务器启动并运行时,将在其上完成大量I / O. 因此,良好的读写硬盘性能将对整个SonarQube服务器性能产生很大影响。

1.2 企业硬件建议

对于SonarQube的大型团队或企业级安装,需要额外的硬件。在企业级别,监控SonarQube实例/实例管理/ java-process-memory是必不可少的,并且应该随着实例的增长引导进一步的硬件升级。起始配置应至少包括:

  • 8个核心,允许主SonarQube平台与多个计算引擎工作者一起运行
  • 16GB RAM有关数据库和ElasticSearch的其他要求和建议,请参阅硬件建议/要求/硬件建议。

1.3 支持的平台

SonarQube Java分析器能够分析任何类型的Java源文件,无论它们遵循的Java版本如何。

但SonarQube分析和SonarQube服务器需要特定版本的JVM。

参考资料:

Prerequisites and overview

版本注意:jdk8支持的sonarqube版本最高是7.8,而从7.9版本开始都是要求jdk11了,下载的话需要注意版本的对应关系,SonarQube 7.6, 对应 JDK8,MySQL 版本>=5.6 && <8.0。sonarqube从7.8起,不再支持mysql。SonarQube 的社区版是免费的,其他版本是收费的!!!

2. 安装

2.1下载sonarqube的zip包

我的jdk是1.8,mysql数据库,所以下载的版本是:7.0版本,zip安装包下载地址:

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.0.zip

2.2下载sonarqube的汉化包

Releases · xuhuisheng/sonar-l10n-zh · GitHub

下载汉化包地址:https://github.com/xuhuisheng/sonar-l10n-zh/releases

2.3如果需要mysql可以下载对应版本的mysql

MySQL :: Download MySQL Community Server (Archived Versions)

2.4数据库配置

root登录数据库,执行以下命令:

创建sonar数据库

创建sonar 用户

给sonar 赋予权限

密码是sonar

刷新权限

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

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;

2.5sonar配置

打开sonar/conf目录下的sonar.properties,加入以下配置项:

#数据库连接url

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

#数据库用户

sonar.jdbc.username=sonar

#数据库密码

sonar.jdbc.password=sonar

sonar.sorceEncoding=UTF-8

sonar.login=admin

sonar.password=admin

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

sonar默认的登陆名和密码都是admin,默认端口是http://localhost:9000/

如果想修改端口:

2.5配置汉化包

将下载的汉化jar放到extensions\plugins路径:

2.6启动sonarqube服务

我解压缩sonarqube-7.0.zip到这个目录 D:\software\sonarqube-7.0\bin\windows-x86-64

我使用的是windows的64位系统,则打开​​bin\windows-x86-64\StartSonar.bat,看到如下代表启动成功。

注意:启动sonar服务的同时,也启动了jdk 的Java服务,如果提示如下报错,必须关闭所有的Java服务

2.7登录平台

访问地址:http://localhost:9000/

若启动报错可检查logs文件下的日志,检查顺序:sonar.log -> es.log -> web.log

2.8创建项目

访问sonar首页,按照提示一步步来即可

设置令牌

分析项目(使用maven方式)

mvn sonar:sonar -Dsonar.projectKey=test -Dsonar.host.url=http://127.0.0.1:9000 -Dsonar.login=生成的令牌

进入到要扫描的代码目录,执行上面的maven命令即可,执行完毕后在SonarQube页面即可看到扫描结果。

注:上面的命令中有些是固定的信息,如果每次执行扫描都需要输入则显的很麻烦,这里我们可以将某些信息配置到maven的setting.xml中

<profile>

<id>sonar</id>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

<properties>

<!-- Example for MySQL-->

<sonar.jdbc.url>jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&amp;characterEncoding=utf8</sonar.jdbc.url>

<sonar.jdbc.username>sonar</sonar.jdbc.username>

<sonar.jdbc.password>sonar</sonar.jdbc.password>

<sonar.host.url>http://127.0.0.1:9000</sonar.host.url>

<sonar.login>admin</sonar.login>

<sonar.password>admin</sonar.password>

</properties>

</profile>

或者:

<profile>

<id>sonar</id>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

<properties>

<sonar.host.url>http://127.0.0.1:9000</sonar.host.url>

<sonar.login>7a13de184fe9d79c59e24062d0065bd87b7064e9</sonar.login>

</properties>

</profile>

以后直接执行mvn sonar:sonar -Dsonar.projectKey=test即可。甚至mvn sonar:sonar都可以,SonarQube会自动以maven的坐标为项目key去创建项目

相关推荐
月光水岸New2 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6752 小时前
数据库基础1
数据库
我爱松子鱼2 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo3 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser4 小时前
【SQL】多表查询案例
数据库·sql
Galeoto4 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)4 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231114 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白4 小时前
PostgreSQL:更新字段慢
数据库·postgresql
敲敲敲-敲代码4 小时前
【SQL实验】触发器
数据库·笔记·sql