一、安装配置sonar

1、Sonar介绍

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

注意:安装sonar前, 请确保安装好了jdk和MySQL,jdk版本为7.0+,mysql为5.6+,sonar为5.6.6

2、配置数据库

Apache Derby 是Sonar自带并且默认安装使用的数据库,此外Sonar对如下数据库提供支持:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql为例介绍如何配置数据库:

1) 配置mysql

结合 SonarQube, MySQL 数据库最好使用 InnoDB 引擎, 可提高性能。 看你的 mysql 现在已提供什么存储引擎: 
mysql> show engines;

看你的 mysql 当前默认的存储引擎: 
mysql> show variables like ‘%storage_engine%’;

修改 MySQL 存储引擎为 InnoDB, 在配置文件/etc/my.cnf 中加入 default-storage-engine=INNODB, 
重启 mysql 服务器 # service mysqld restart, 再次登录 MySQL 查看默认引擎设置是否生效 
mysql> show variables like ‘%storage_engine%’;

innodb_buffer_pool_size 参数值设置得尽可能大一点,这个参数主要作用是缓存 innodb 表的索引,数据,插入数据时的缓冲默认值: 128M, 专用 mysql 服务器设置的大小:操作系统内存的 70%-80%最佳。

设置方法: my.cnf 文件[mysqld] 下面加入innodb_buffer_pool_size 参数 innodb_buffer_pool_size = 256M( 我们这里设置为 256M, 因为我们的不是专用的 MySQL 数据库服务器,还有很多其他的服务需要占用系统内存) 
设置 MySQL 的查询缓存 query_cache_size ,最少设置 15M, query_cache_type=1 
query_cache_size=32M 
重启 mysql 服务器 service mysqld restart 
验证缓存设置是否生效: 
mysql> show variables like ‘%query_cache%’;

2)创建数据库

在mysql中执行如下脚本创建数据库及mysql用户

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’;

3)配置数据库

编辑${SONAR_HOME}/conf/sonar.properties:

sonar.jdbc.username: sonar 
sonar.jdbc.password: sonar 
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true # Optional properties sonar.jdbc.driverClassName: com.mysql.jdbc.Driver

3、安装Sonar

解压安装: 
unzip sonarqube-4.5.4.zip 
mv sonarqube-4.5.4 sonarqube

编辑 sonar 配置: 
cd sonarqube/conf/ 
vi sonar.properties

sonar.jdbc.username=root 
sonar.jdbc.password=root 
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterE 
ncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance 
sonar.web.host=0.0.0.0 
sonar.web.context=/sonarqube 
sonar.web.port=9000

保存以上配置(注意,要看看默认的 9000 端口是否已被占用) 
防火墙中打开 9000 端口: 
vi /etc/sysconfig/iptables 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 9000 -j ACCEPT 
重启防火墙, 使端口配置生效 
service iptables restart 
启动 SonarQube Web Server 
/root/sonarqube/bin/Linux-x86-64/sonar.sh start( 初次启动会自动建表和做相应的初始化)

浏览器中输入: http://10.21.0.187:9000/sonarqube/

ps:当启动sonar服务时,elasticsearch不能通过root启动时,解决如下:

解决方法1:

  • 如果是用root账号启动,会报以下错误

    Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.
  • 这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 
    建议创建一个单独的用户用来运行ElasticSearch

  • 创建elsearch用户组及elsearch用户

    groupadd elsearch
    useradd elsearch -g elsearch -p elasticsearch
  • 更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch

    cd /opt
    chown -R elsearch:elsearch  elasticsearch
  • 切换到elsearch用户再启动

    su elsearch cd elasticsearch/bin
    ./elasticsearch
  • 启动后打印信息如下

    [2015-12-30 10:15:44,876][WARN ][bootstrap ] unable to install syscall filter: prctl(PR_GET_NO_NEW_PRIVS): Invalid argument [2015-12-30 10:15:45,175][INFO ][node ] [Grim Hunter] version[2.1.1], pid[26383], build[40e2c53/2015-12-15T13:05:55Z] [2015-12-30 10:15:45,176][INFO ][node ] [Grim Hunter] initializing ... [2015-12-30 10:15:45,243][INFO ][plugins ] [Grim Hunter] loaded [], sites [] [2015-12-30 10:15:45,272][INFO ][env ] [Grim Hunter] using [1] data paths, mounts [[/ (/dev/mapper/vg_yong-lv_root)]], net usable_space [33.3gb], net total_space [49gb], spins? [no], types [ext4] [2015-12-30 10:15:47,318][INFO ][node ] [Grim Hunter] initialized [2015-12-30 10:15:47,318][INFO ][node ] [Grim Hunter] starting ... [2015-12-30 10:15:47,388][INFO ][discovery ] [Grim Hunter] elasticsearch/fnXUCLOQQBiC1aR7hhB82Q [2015-12-30 10:15:50,442][INFO ][cluster.service ] [Grim Hunter] new_master {Grim Hunter}{fnXUCLOQQBiC1aR7hhB82Q}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received) [2015-12-30 10:15:50,491][INFO ][node ] [Grim Hunter] started [2015-12-30 10:15:50,526][INFO ][gateway ] [Grim Hunter] recovered [0] indices into cluster_state
ElasticSearch后端启动命令

./elasticsearch -d

解决方法2:

在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下

  1. ./elasticsearch -Des.insecure.allow.root=true
解决办法3:

用vi打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令

  1. ES_JAVA_OPTS="-Des.insecure.allow.root=true"
如下图所示,这个方法的好处是以后不用添加参数就能以root身份执行了ps:方法二、三只对elesticSearch2.x有效

转载于:https://www.cnblogs.com/dengshihuang/p/8032371.html

SonarQube代码质量管理工具的安装(Linux)相关推荐

  1. SonarQube代码质量管理工具安装与使用(sonarqube5.1.2 + sonar-runner-dist-2.4 + MySQL5.x)

    1. SonarQube安装(sonarqube5.1.2 + sonar-runner-dist-2.4) 1.1 前提条件 1) 已安装Java环境(version:1.7+) 2) 已安装MyS ...

  2. 持续集成篇-- SonarQube代码质量管理平台的安装

    IP:192.168.4.221 环境:CentOS 6.6.JDK7.MySQL5.1 .SonarQube-4.5.4(LTS) root用户操作 准备工作:已安装JDK7并配置好了环境变量 1 ...

  3. Windows10 部署 Sonarqube 代码质量管理平台

    Windows10 部署 Sonarqube 代码质量管理平台 一 安装MySQL解压版 此部分参看Win10安装MySQL5.7.22 解压缩版(手动配置)方法 1.下载MySQL MySQL官网下 ...

  4. 代码质量管理工具:SonarQube常见的问题及正确解决方案

    代码质量管理工具:SonarQube常见的问题及正确解决方案 SonarQube 简介 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以 ...

  5. 代码质量管理工具SonarQube概述

    SonarQube,即Sonar,是一款管理代码质量的开放平台,一个基于Web的应用软件. SonarQube能够从如下7个方面跟踪代码质量: 架构设计 编码规则Coding rules 代码注释co ...

  6. SonarQube:开源的代码质量管理工具

    SonarQube是一个开源的代码质量管理工具,如下图所示,它覆盖了代码质量的7个方面: SonarQube的主要特性: 通过插件扩展 支持新的编程语言.添加规则引擎.计算更复杂的度量指标,这些都可以 ...

  7. Jenkins+Gitlab+SonarQube 代码质量管理集成

    Jenkins+Gitlab+SonarQube 代码质量管理集成 一.环境准备 1.1.JDK11环境安装 1.2.Docker环境下搭建SonarQube所需的PostgreSQL数据库 1.2. ...

  8. 【代码质量管理工具】--使用sonarLint提高代码质量

    [背景] 项目组,在12月份的时候使用了强大的代码质量管理工具--Sonar来检测规范我们的代码,但是当时使用的时候会有一个缺陷,就是我每使用一次maven命令将代码扫描到sonarqube的网页端, ...

  9. 代码质量管理工具】——sonar

    原文地址:https://blog.csdn.net/luckystar689/article/details/53871821 ----------------------------------- ...

最新文章

  1. openOffice word转pdf,pdf转图片优化版
  2. 微信6516android,微信6516版本怎么可以分组
  3. leetcode-剑指 Offer 44. 数字序列中某一位的数字
  4. R语言观察日志(part6)--初识rMarkdown
  5. 一步一步跟我学习hadoop(5)----hadoop Map/Reduce教程(2)
  6. PAT 1153 Decode Registration Card of PAT (25 分)- 甲级
  7. 基于机器视觉的眼镜镜片轮廓提取
  8. 微软VC/MFC FAQ(转)
  9. 管理新论:少谈精神文化,强调工作作风
  10. 【2017CCPC哈尔滨赛区 HDU 6242】Geometry Problem【随机化】
  11. 微型计算机的软件系统分成,会计电算化辅导:微型计算机软件系统
  12. 基于声波的手势识别技术
  13. html中实现LED字体步骤记录
  14. 互联网电商大数据架构图
  15. 大一新生计算机课word知识,大一计算机结业论文
  16. 什么是TS?如何打开,编辑和转换它?
  17. PAT1003 我要通过! (20 分)(C语言)
  18. 大学毕业生参考信函提示
  19. 大数据hadoop新手快速入门视频教程 Hadoop学习视频教程
  20. 电视盒子有哪些软件支持电视节目回看?

热门文章

  1. ORB(Oriented FAST and Rotated BRIEF)
  2. caffe使用训练好的模型对自己的一张图片进行测试
  3. Windows驱动—Windows应用程序和Windows驱动通信编程
  4. jqgrid treegrid 重新加载数据
  5. 2018.11.08 NOIP模拟 景点(倍增+矩阵快速幂优化dp)
  6. dva源码解析(一)
  7. 17-取石子-hdu1846(巴什博奕)
  8. java IO(四):键盘录入
  9. C# HttpClient设置cookies的两种办法
  10. Manasa and Combinatorics