应用介绍:sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量通过插件形式;可以支持包括Java、C#/C++、PL/SQL、Cobol、javascrip、Groovy等等二十几种编程语言的代码质量管理与检测;

Sonarqube官网:https://www.sonarqube.org/

环境:Java环境:jdk1.8+

Mysql数据库:mysql5.6+

系统:centos6.9

安装步骤:

官方文档:https://docs.sonarqube.org/display/SONAR/Installing+the+Server

官方下载:https://www.sonarqube.org/downloads/

1、下载及准备:

[root@dxm-oss02 src]#pwd

/usr/local/src

[root@dxm-oss02 src]#wget  https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.zip

[root@dxm-oss02 src]#unzip sonarqube-6.7.zip

[root@dxm-oss02 src]#useradd sonar  //新建一个普通用户,然后用普通用户启动sonarqube服务

[root@dxm-oss02 src]#chown -R sonar. Sonarqube-6.7

[root@dxm-oss02 src]#vim /etc/sysctl.conf  //增加下面这行,不然启动sonarqube的时候会报错

vm.max_map_count=262144

[root@dxm-oss02 src]#sysctl -p     //使配置生效

首先创建数据库和用户密码

>CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

>grant all privileges on sonar.* to 'sonar'@'%' identified by 'sonar123654';

>GRANT ALL ON sonar.* TO ‘sonar’@’localhost’ IDENTIFIED BY ‘sonar123654’;

>flush privileges;

下面进入到sonarqube的主目录:

2、编辑sonarqube和elasticsearch的配置文件:

(1)   、首先编辑sonarqube的配置文件:$sonarqube-6.7/conf/sonar.properties

(2)   、修改elasticsearch配置文件:$sonarqube/elasticsearch/config/elasticsearch.yml

修改这两行配置的原因是:在启动sonarqube的时候它会先启动elasticsearch服务,然而没有做上面两行修改的话,会报下面这个错误:

ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your
configuration or disable system call filters at your own risk

报这个错的原因是:这是在因为Centos6不支持SecComp,而ES5.2.0以上版本默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

 

3、运行脚本启动服务:

[root@dxm-oss02
sonarqube-6.7]#su sonar ./bin/linux-x86-64/sonar.sh start

//以普通用户起服务,不然es启动会报错,用户:console、start、status、stop、restart

[root@dxm-oss02
sonarqube-6.7]#su sonar ./bin/linux-x86-64/sonar.sh status

注意:这里立即查看状态,短时间内意义不大,因为一开始显示running,并不代表会一定在后面的时间内running!也就是说,在启动彻底完成前不可信!什么叫启动"彻底完成"? 见下面:

这里全部启动成功了才真的启动成功了!

再次确认下:

至此,sonarqube就启动成功了。

排错说明:可以先跟着sonar.log日志,如果报了es错误,可以去查看es.log;如果报了web错误,那么就是查看web.log。我在安装的时候,遇见了"root用户无法启动elasticsearch问题","mysql连接问题","版本太低问题",或"内存溢出"...都可以在日志里有迹可寻。(es.log,web.log跟sonar.log在同一个目录下)

注意:启动成功后需在防火墙和腾讯云开启相应的端口外网才可访问

4、登入web端:在浏览器输入http://ip:port

默认登入账号和密码:admin/admin

登入后会先叫你生成一个token:

然后还得在maven的settings.xml设置sonar信息:$MAVEN_HOME/conf/settings.xml

<profiles>

<profile>

<id>sonar</id>

<properties>

<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>

<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>

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

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

<sonar.host.url>http://localhost:9090</sonar.host.url>
<!--Sonar服务器访问地址-->

</properties>

</profile>

</profiles>

<activeProfiles>

<activeProfile>sonar</activeProfile>

</activeProfiles>

配置完保存,退出!

5、进到项目里有pom.xml同级目录下,执行下面命令进行代码分析,分析结果会在web客户端显示

mvn sonar:sonar \

-Dsonar.host.url=http://ip:9090 \

-Dsonar.login=feb1256d8b16847ae9a9c4340d5ac759f4f72a3d

这个命令就是刚才生成token那里复制过来的。我在进行分析的时候出现了下面这个错误:

[ERROR] Failed to execute goalorg.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar
(default-cli) on project qishi: Error 500 on
http://sonar/api/ce/submit?projectKey=com.xxx:xxx&;projectName=xxx :
{"errors":[{"msg":"An error has occurred. Please
contact your administrator"}]} -> [Help 1]  //上传分析报告失败

通过查看sonarqube的web.log发现是mysql配置项max_allowed_packet的值过小

Caused by: com.mysql.jdbc.PacketTooBigException: Packet for
query is too large (12774723 > 4194304). You can change this value on the
server by setting the max_allowed_packet' variable. at
com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3671) at
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2508) at
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673) at
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549) at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)

解决方案:

在mysql配置文件/etc/my.cnf里[mysqld]添加下面这行配置并重启mysql

max_allowed_packet=500M

重启完mysql后把sonar也重启下,否则虽然数据库配置已变更,但对sonarqube的数据库连接不会生效。

6、添加中文插件

去这个网站下载对应版本的中文包:

https://github.com/SonarQubeCommunity/sonar-l10n-zh

然后把中文包拷贝到$sonarqube-6.7/extensions/plugins/目录下,并重启sonar即可

重启完重新进行扫描,得到结果如下:

sonarqube6.7部署文档的更多相关文章

  1. PPTP部署文档

    PPTP部署文档 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.       欢迎加入:高级运维工程师之路 598432640 前言:这款VPN部署起来特别简单,想对OPENVON配 ...

  2. hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

    相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...

  3. supervisor 部署文档

    supervisor 部署文档 supervisor 需要Python支持,如果不用系统的supervisor,单独安装python python 安装 #依赖 yum install python- ...

  4. centos6 Cacti部署文档

    centos6 Cacti部署文档 1.安装依赖 yum -y install mysql mysql-server mysql-devel httpd php php-pdo php-snmp ph ...

  5. HP DL160 Gen9服务器集群部署文档

    HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server        Memo ...

  6. Sqlserver2008安装部署文档

    Sqlserver2008部署文档 注意事项: 如果你要安装的是64位的服务器,并且是新机器.那么请注意,你需要首先需要给64系统安装一个.net framework,如果已经安装此功能,请略过这一步 ...

  7. CDH简易离线部署文档

        CDH 离线简易部署文档       文档说明 本文为开发部署文档,生产环境需做相应调整. 以下操作尽量在root用户下操作,避免权限问题. 目录 文档说明 2 文档修改历史记录 2 目录 3 ...

  8. Ceph分布式存储(luminous)部署文档-ubuntu18-04

    Ceph分布式存储(luminous)部署文档 环境 ubuntu18.04 ceph version 12.2.7 luminous (stable) 三节点 配置如下 node1:1U,1G me ...

  9. rabbitmq 3.7.8基于centos7部署文档

    rabbitmq 3.7.8部署文档 安装erlang 安装依赖环境 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel ope ...

随机推荐

  1. 位(Bit)与字节(Byte)

    字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit) 一个字的字长为16 一个字节的字长是8 bps ...

  2. day4-python基础-小数据池以及深浅copy浅讲

    今天的目录是 1.小数据池 2.深浅copy 正文开始 1.小数据池 在说明今天的内容前,先说明一个在今天重复用到的一个知识点 ###比较’=’俩边的数据是否完全相同,以及判断一个对象的内存地址是否完 ...

  3. postgresql事务

    查看更多教程:http://www.gitbook.net/postgresql/2013080567.html pgsql事务与并发控制 事务与并发控制 数据库几大特性: ACID: Atomici ...

  4. 在SQL Server中如何进行UPDATE TOP .....ORDER BY?

    前言 今天在导入数据到系统后需要根据时间排序对刚导入的TOP N条进行数据更新,之前没遇到过UPDATE TOP...ORDER BY,以此作为备忘录. SQL SERVER之UPDATE TOP.. ...

  5. 基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化

    前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...

  6. MacOS 安装 gdb 踩过的坑

    今天在 OS X EI Capitan 10.11.6 中安装 gdb 的时候,出了一堆状况,写下此文以便以后能够时刻提醒自己. 解决方案 1.安装 gdb $ brew install gdb $ ...

  7. python之yagmail模块--小白博客

    yagmail 实现发邮件 yagmail 可以简单的来实现自动发邮件功能. 安装 pip install yagmail 简单例子 import yagmail #链接邮箱服务器 yag = yag ...

  8. Python 属性描述符和属性的查找过程

    属性描述符可以用来控制给属性赋值的时候的一些行为 import numbers class IntField: def __get__(self, instance, owner): return s ...

  9. 《构建之法》课程进度之Github、Travis等工具融入篇

    <构建之法>里有一个16周的软件工程课程进度设计.本文在该基本设计的基础上,围绕github.com(源码管理).travis-ci.org(持续集成).单元测试工具.日志工具.少数实用U ...

  10. Java 显示读取properties 乱码解决方案

    项目开发时,在配置springmvc 校验错误提示信息时,配置到properties的中文,在前端取出时,显示为乱码,可以确定properties 配置文件已经被设为UTF-8编码,在springmv ...