本文目录
Linux下SonarQube7.2.1的安装部署
虽然java语言有阿里规约插件,但使用一段时间以后,发现阿里规约插件只是简单的扫描了一些代码的规范,无法对代码质量进行检测,以及一些隐含的漏洞,如空指针等。因此,在了解
sonar
以后,发现sonar
比阿里规约插件更强大,结合Idea,可以在每次提交代码时,自动扫描是否存在问题。
1. 环境说明
本次安装环境说明,目前SonarQube
使用最新的版本7.2.1
,查看官网的要求说明 ,如下所示:
从上图可知,jdk
最好是1.8
,对于1.7
和1.9
都不支持。
软件版本
- jdk : 1.8
- Linux:CentOs7-64位
- Mysql:5.7.21
- SonarQube:7.2.1(点击下载)
相关IP
- 本机IP:192.168.137.1
- mysql:部署在本机,即192.168.137.1
- 服务器IP:192.168.229.128
2. 安装部署
2.1 创建数据库
sonar支持多种数据库,本身默认使用的是内存数据库,但这里使用的是Mysql,因此需要做一些配置。
启动之前,需要创建相关数据库,这里创建一个名为sonar
的数据库:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
- 1
只需要创建数据库即可,sonar
会自动为我们创建相关的表。
2.2 准备安装包
将下载好的安装包上传到/usr/tools/sonar/
(自行创建)目录下,或者在该目录下执行wget
命令在线下载:
[root@localhost sonar]# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-7.2.1.zip
- 1
执行unzip
命令解压:
[root@localhost sonar]# unzip sonarqube-7.2.1.zip
- 1
2.2 配置
进入到sonarqube-7.2.1/
目录下,查看文件:
[root@localhost sonar]# cd sonarqube-7.2.1/
[root@localhost sonar]# ls
- 1
- 2
如下所示:
其中,bin
存放程序执行文件,conf
存放配置文件,logs
存放日志文件。
然后,进入到/conf
目录下,配置数据库信息,修改sonar.properties
文件,添加以下配置:
sonar.jdbc.url=jdbc:mysql://192.168.137.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
- 1
- 2
- 3
- 4
url
是数据库连接地址,username
是数据库用户名,jdbc.password
是数据库密码。
2.3 创建用户
由于
sonar
是不允许root用户情况下运行的,因此需要先创建一个非root用户。
这里,创建一个名为sonar
的用户,密码为123456
。
用root账号登录,使用以下命令:
#创建用户
[root@localhost user]# useradd sonar
#设置密码,enter回车后,两次输入123456即可
[root@localhost user]# passwd sonar
- 1
- 2
- 3
- 4
如下图所示:
赋予目录权限
新建的sonar
用户,对于/usr/tools/sonar
目录是没有足够权限的,会导致服务启动失败。因此我们需要设置该目录权限:
chmod -R 777 /usr/tools/sonar/
- 1
然后,执行以下命令,切换到sonar
用户:
[root@localhost usr]# su - sonar
- 1
3. 启动
切换到sonar
用户以后,进入到/usr/tools/sonar/sonarqube-7.2.1/bin/
目录下:
[sonar@localhost ~]$ cd /usr/tools/sonar/sonarqube-7.2.1/bin/
- 1
使用ls
命令,查看该目录:
发现存在多个目录,此时根据自己的服务器选择对应的目录,比如我的是Linux 64位,则选择linux-x86-64
,进入到该目录下,执行以下命令,启动服务:
[sonar@localhost linux-x86-64]$ ./sonar.sh start
- 1
其它命令:
- ./sonar.sh stop 停止服务
- ./sonar.sh restart 重启服务
初次启动会稍微有点慢,因为要初始化数据库信息。
此时,查看日志:
tail -300f /usr/tools/sonar/sonarqube-7.2.1/logs/sonar.log
- 1
出现以上信息,表示启动成功。
4. 访问及界面汉化
sonar默认监听的端口时
9000
,可以在sonar.properties
中通过sonar.web.port=端口号
来修改。
打开浏览器,访问http://192.168.229.128:9000,即会看到如下界面:
点击右上角的log in
,到登陆界面,然后输入admin/admin
(默认账户),初次登录成功以后,会跳转到该界面:
这里是让你输入一个用户名,生成一个token,主要用于后面其他插件如idea
时,代替用户名、密码登录。可以后面需要的时候再生成,这里跳过,选择右上角的skip this tutorial
。
汉化
点击界面上的Adminstration
,然后选择Marketplace
,在Plugins
一栏,搜索Chinese Pack
,然后点击insatll
进行安装,如下所示:
安裝完成以后,点击页面上Restart
按钮,重启服务器,如下图所示:
等待一会儿,重启完毕以后,会自动跳转到登录界面。输入admin/admin
登录以后,便会看到汉化成功:
至此,SonarQube
安装部署完成。
5. 总结
安装的过程中可能会出现很多其他的错误,当出现错误时,请检查步骤是否出错。主要有以下注意点。
- 一定要注意各软件的版本,比如
jdk
版本; - 服务启动之前必须创建对应的数据库,不需要创建表,
sonar
会自动初始化表; - root用户下是无法启动
sonar
服务,因此需要创建相关非root用,并对安装目录拥有足够权限; sonar.properties
中数据库的配置,一定要仔细,一般启动失败,很大可能是因为数据库配置有问题;- 初次启动时,由于需要初始化数据库表,因此会比较缓慢。
后续,会补充如何使用sonar-scanner
扫描代码,及在idea中如何配置sonar
插件。