• 欢迎来到本博客,希望可以y一起学习与分享

Sonar

笔记 benz 来源:SonarQube部署和配置-Docker方式 2年前 (2019-11-02) 20次浏览 0个评论 扫描二维码
文章目录[隐藏]

前言

硬件要求

  • SonerQube Server 要正常运行,机器配置至少2G,其中1G空闲。
  • 需要的硬盘分区大小取决于分析的代码大小。
  • 硬盘的读写速度要高。

平台要求

  • oracle JRE 1.8
  • openJDL 1.8

数据库
sonarqube从7.9起就不支持mysql

如果需要使用最新的sonarqube,请使用其它数据库,我这里使用PostgreSQL数据库

安装之Docker版本

1、部署PostgreSQL
拉取数据库命令:docker pull postgres
创建容器:
docker run --name pgsql -e POSTGRES_USER=root -e POSTGRES_PASSWORD=root -p 5432:5432 -d postgres
2、建立数据库和对应账号

3、部署sonarqube
(1)拉取数据库命令:docker pull sonarqube
(2)在宿主机上新建目录

(3)修改上边目录权限
chmod 777 /data/sonarqube –R

(4)运行容器

如果是MySQL数据库,SONARQUBE_JDBC_URL可以换成SONARQUBE_JDBC_URL="jdbc:mysql://192.168.99.100:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance"
参数解释

  • -d: 后台运行容器,并返回容器ID;
  • -p: 端口映射,格式为:主机(宿主)端口:容器端口。-p 9002:9000是将容器9000端口映射为9002,因为宿主9000端口已经被占用
  • –name=sonarqube: 为容器指定一个名称;
  • -e设置环境变量,此变量会传递到COMMAND中

使用

1、在浏览器中输入

http://IP地址:9000

SonarQube服务运行正常

等待一小会,进入about页面中,然后点击”Log in”按钮

账号:admin 密码:admin ,

然后如果有如下页面,叫你生成token,可以暂时点击”Skip this tutorial”跳过。(这个token是有用的,首次根据情况可以不生成)
第一次登录会看到 Tutorial,按照提示设置用于验证身份的token。可以暂时点击”Skip this tutorial”跳过,也可以生成的token需要复制记下来!(这个token是有用的,首次根据情况可以不生成)不会再显示第二次!在用户 > 我的账户 > 安全中可以生成新token(令牌),或者回收已创建的 token。

如果想强化安全,不想在执行代码扫描或调用Web Service时使用真实SonarQube用户的密码,可以使用用户令牌来代替用户登录。这样可以通过避免把分析用户的密码在网络传输,从而提升安全性。

2、开启登录访问权限

进入配置-权限,开启

Force user authentication

Forcing user authentication stops un-logged users to access SonarQube.

标识: sonar.forceAuthentication

作用是所有页面都只允许登录后访问

插件安装与安装中文包

插件管理页面管理插件
插件管理页面路径:Administration->Marketplace->Plugins

页面往下翻,找到 Chinese Pack 然后点击 Install,当然下面的图是我安装完后截的。

下载成功后,点击 Restart,然后出来的弹窗也点 Restart

等待 SonarQube 重启后,界面就是汉语了。
手动安装中文包
有时候因为网络原因,并不能安装插件,那么需要手动安装。这里以安装中文包为例。
下载中文包:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases,根据自己的sonarqube版本下载对应的中文包版本,选择下载jar文件。将其放在sonarqube的/extensions/plugins/目录下再启动SonarQube即可。
更新插件

回到应用市场,继续更新其他插件。切记:更新和安装时不要关闭浏览器和重启SonarQube,否则会导致无法启动SonarQube
更新一个插件大概需要半小时,当提示”等待更新”时,点击上方的”重启”按钮。基本每更新一个插件都要重启SonarQube服务一次
如遇到在线更新失败的情况,需手动更新

1、从https://docs.sonarqube.org/display/PLUG/Plugin+Library下载需要的插件

SonarC#、SonarCSS、SonarHTML、SonarJava、SonarJS、SonarTS、SonarXML

2、插件传到宿主机192.168.1.155上

3、用下边的命令插件传到sonarqube 的docker里

命令格式:docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

docker cp sonar-css-plugin-1.0.2.611.jar sonarqube:/opt/sonarqube/extensions/plugins/sonar-css-plugin-1.0.2.611.jar
反正插件文件是放在sonarqube的/extensions/plugins/目录下

4、保存修改后的容器到新镜像(每次在容器中做过修改都要保存为新镜像,防止意外导致容器无法启动)

docker commit sonarqube容器id sonarqube-xywg(新容器名)

5、重启SonarQube

PS:如果镜像没问题,但某些意外导致容器停止,可以用docker restart 命令再次启动容器。

三、创建用户

创建一个普通用户用于做代码质量检测

账号:testing

密码:testing

创建完毕,点击上图testing行、令牌列的图标,生成令牌:testing_sonarqube


点击”生成”按钮

复制生成的令牌:bcda4faafae6f34759a898c9766a66ae4c73a441

点击”完成”

四、集成LDAP登录

官方文档:https://docs.sonarqube.org/display/SONARQUBE67/LDAP+Plugin

创建项目(PHP为例)

前提:
SonarQube安装在CentOS服务器上;代码在Windows系统本地开发;项目路径:D:\data\wwwroot\tp51。

下载语言插件

创建项目

1、点击“项目”->“+”->“创建项目”。

2、给项目起个名字作为项目标识(sonar.projectKey),然后,点击“设置”。

3、输入一个用户名,点击“创建”,为这个用户创建一个token。

4、得到token,请保管好token。

5、如果已经创建了token,可以直接输入token

6、安照自身情况选择

7、下载sonar-scanner扫描器

8、window系统下,给sonar-scanner配置环境变量

9、在sonar-scanner目录下,找到/conf/sonar-scanner.properties文件,修改sonar-scanner配置

10、在项目下新建文件sonar-project.properties,在项目里面必须有这个配置文件才可以进行扫描

这是基本的配置,更多配置参数请百度


11、把之前在SonarQube新建项目时,给出的代码,在项目的根目录下调起CMD,并粘贴代码执行。

12、在SonarQube上查看结果

PHPStorm使用SonarLint插件

SonarLint 是一个插件,可以集成到开发工具里,有以下功能

  • 当打开java/php等文件时可自动分析静态文件,也可以手动对整个项目做分析;
  • 可连接到SonarQube同步分析规则、质量规则与自定义设置;

下载SonarLint插件

首先,我们打开PHPStorm编辑器,然后我们在编辑器里面安装个SonarLint插件,因为PHPStorm里面代码审查工具需要依赖SonarLint插件来进行审查,然后再通过SonarLint的外部链接来使用我们的Sonarqube代码审查规则,所以我们先来安装SonarLint插件,在“File > Settings > Plugins”里面搜索“SonarLint”进行搜索安装:


配置SonarQube servers

点击“Next”之后会弹出以下弹出,然后选择“Login/Password”输入账号密码,然后点击“Next”,然后接着点击“Finish”:

如果提示项目绑定失败,可以点击一下“update binding”更新一下。

如果勾选 Automatically tigger analysis ,将会自动对打开的文件进行分析


这里是说明可以在Sonarqube自己写,你可以翻译成中文,这样方便团队里面英文不好的人员,在Sonarqube里面这里进行设置,点击“扩展描述”进行添加,然后保存,这样在PHPStorm里面就会有中文提示错误说明:

到这里PHPStorm使用Sonarqube代码分析规则进行编辑器代码规范提醒已经配置完成。

自定义规则

深入了解 sonar 自定义规则开发 (入门强烈推荐)
Sonar代码质量与技术债

一些问题

在docker中使用命令:docker logs 容器id来查看日志中错误。
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
来源:https://www.cnblogs.com/niaomingjian/p/7871935.html
解决方法:
Windows和macOS 下使用Docker Toolbox的,需要在docker-machine下更改vm.max_map_count的值:


文章 Sonar 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!