Sonar Server 安装配置

前言

因为公司有代码扫描的需求,做测试前移,所以不可避免的就要找代码扫描的工具,sonarqube 以前就听过,这回就用用吧。

sonar 结构

我认为有必要知道的,就下面两块儿

SonarQube Server

SonarQube Scanner

流程就是 scanner 扫描代码,然后将结果传至 server 端,sonar 平台有展示部分。

当然,server 端不光有展示的功能,其实代码质量的跟踪也在里面,只不过用不用的上,能不能用起来就看团队了。

sonar server 下载&&安装

1)sonar server 下载

官网进行下载,下载之后就是 sonarqube-8.2.0.32929.zip 这种的 zip 包,后面的版本号随版本变化

2)sonar server 安装

其实安装挺简单,解压启动即可,但是会牵连出来几个问题,下面会说。

# 启动,console是控制台启动,start是后台启动
# ./sonar.sh start
./sonar.sh console
# 登录,地址http://xxx.xxx.xxx.xxx:9000,默认用户名密码:admin/admin

其实我的建议,像这些安装文档之类的,最好跟着官网走,因为博客上这些,等官网更新,可能安装方法就变了,博客一般写出来之后很长时间就不维护了。

官网上相关安装就几句话
1585097224549.png

这种的相当于简易安装,数据库用的是内置的 h2,如果你这个时间打开网址,会提示你不建议将之用于实际环境。这个时候就引出了下面的问题,数据库

官网还有 docker 的安装方式,那个就更简单了。
1585097450544.png

3)数据库安装

为什么我说要看官网,如果这个时候去找博客,会发现很多都是用的 MySQL 数据库,但是!你会发现你去官网上看相关的支持信息,就没 MySQL 数据库的支持了,我说的是新的。

看到 database 这里面,只有如下三种,Oracle 的版本没截全,下面还有,等大家安装的时候可以去看。
1585097650859.png

我想用个免费的,就选了 PostgreSQL,记住看支持的版本,我当时 CentOS7 用 yum 进行安装,安装的是 9.2 的,但是官网新版支持 9.x 的是 9.3-9.6。等安装的时候记得去看这些信息

PostgreSQL 的安装我会单独写一篇,就不在这里面写了,下面写的是 sonar 要怎么跟 PostgreSQL 对接。

# 创建数据库
create database sonarqube;
# 创建用户
# CREATE USER sonarqube CREATEDB LOGIN PASSWORD 'sonarqube'
create user sonarqube;
alter user sonarqube with password 'sonarqube';
# 分配权限
GRANT ALL ON DATABASE sonarqube TO sonarqube
# 修改sonar配置文件
vi /home/sonarqube/sonarqube-8.2.0.32929/conf/sonar.properties
# 将以下几项修改
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
# 下面这个找postgresql的进行修改
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

汉化

1585016424758.png

注意事项

因为 server 内置了 Elasticsearch,所以 Elasticsearch 需要怎么改配置,我们这个 server 端也需要,要不然会报些 Elasticsearch 常见错误,随便搜索下也能解决。

其实这些东西官网上的 requirements 都写有,包括硬件配置、JDK 版本、浏览器、Linux 参数要求,照着来就行了。

下篇预告

下一篇就准备写 scanner 了,写好之后会贴上链接。

  • Sonar
    3 引用 • 3 回帖
  • 安装

    你若安好,便是晴天。

    105 引用 • 1151 回帖

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone9891

    Sonar + Jk 还真是不错的选择

    1 回复
  • hzylyh

    现在就是这么用的,价值还没完全体现,正在慢慢推

  • ferried

    Jk 是啥。。。我们用了一阵,但是坏味道太多了,就直接把服务停了,再也没有坏味道了