天天看点

sonar6.7部署用于ideal的sonarline

说明

因为受限于不能通过sonarline(ideal插件)配置sonar,于是自己在本机或者云服务器部署soanr服务,用于ideal工具本地能在编译阶段发现不符合sonar规范问题,及时解决问题,而不是放到公司sonar检查,一下好几千上万个的不规范问题,直接整崩溃。这种方式也有助于提高代码质量和养成良好的写代码习惯。

sonar写稿日期时最新版是8.3,为什么使用sonar6.7 因为此版本是长期支持版,且支持mysql5.6。目前7.9及其以上不支持mysql了。

关于版本选择问题还有疑问,可以参见sonarqube官网对应版本环境准备介绍。

环境准备

  1. 要求mysql5.6,需要创建sonar用户(非root用户就行,建议创建sonar)
  2. 需要jdk1.8
  3. 硬件要求,主要是内存2G以上,其他CPU、磁盘正常水平就行
  4. 下载sonarqube6.7、mysql5.6、jdk8
  • sonarque6.7.7下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.7.zip
  • mysql5.6下载地址:https://downloads.mysql.com/archives/get/p/23/file/MySQL-5.6.27-1.el7.x86_64.rpm-bundle.tar(此版本是用于centos7,综合包,可以根据自己的环境选择下载使用)
  • jdk8大部分环境应该有,没有自行在oracle官网下载

mysql5.6安装配置

window安装比较简单直接在https://downloads.mysql.com/archives/community/下选择对应环境和版本,下载exe包,按引导安装即可,这里不做过多解释。以下主要介绍下centos7.x环境下安装mysql5.6

  1. 下载 rpm包,下载下图中的RPM-bundle(包含所有rpm)或者直接下载server和client的rpm包,因为也只需要用这两个包。
  • 地址:https://downloads.mysql.com/archives/community/ 可能下载需要注册oracle账号,有就直接登录
    sonar6.7部署用于ideal的sonarline
  1. 上传或者直接wget 地址.rpm到服务端,安装过程如下
  • 先检查是否安装过
注:一定要将mariaDB包和自带mysql包卸载干净,否则安装时出现各种奇妙错误,导致失败。
#rpm -qa | grep -i mariadb //查询安装的MariaDB  用rpm -e xxx 进行卸载
rpm -qa |grep -i mysql
           
  • 卸载
yum remove mysql  # yum卸载命令
rpm -e mysql-community-xxxx  #报错用   rpm -ev --nodeps  xxxxx
whereis mysql  # 检查未卸载干净的目录 或者 使用find / -name mysql
rm -rf /var/lib/mysql  # 删除对应目录
rm -rf /etc/my.cnf # 卸载后/etc/my.cnf不会删除,需要进行手工删除
# 有时候不在etc下可以 find / -name my.cnf 查找

#删除服务
chkconfig --list | grep -i mysql          //查看服务
chkconfig --del mysql                     //删除服务

rpm -qa|grep -i mysql  # 再次检查是否还有没卸载的
           
  • 安装
注:先装好依赖,再装mysql。即使顺序出错,装完依赖一定要卸载mysql并重新装mysql,否则mysql装上了也会出现各种错误。
yum -y install autoconf
#-i是安装,-v是列出更多详细信息,-h是在安装时列出hash标记
#rpm -ivh MySQL-client-5.6.27-1.linux_glibc2.5.x86_64.rpm
#把mysql 的配置文件复制到指定目录下:
cp  /usr/share/mysql/my-default.cnf /etc/my.cnf
#rpm -ivh MySQL-server-5.6.27-1.linux_glibc2.5.x86_64.rpm 
           
  • 初始化MySQL及设置密码
service mysql start
cat /root/.mysql_secret,复制密码
mysql -uroot -p初始密码
set PASSWORD=PASSWORD('123456');
quit;
service mysql restart

# 免密登录修改密码方式
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
select Host, User, Password,password_expired from user where user='root' and host='root' or host='localhost';
update user set password=PASSWORD('Passw0rd') where user='root' and host='root' or host='localhost';
flush privileges;
quit;
service mysql restart
           
  • 新建账号,授权远程
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER 'sonar' IDENTIFIED BY 'sonar_1234';

GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar_1234';

GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar_1234';

FLUSH PRIVILEGES;

远程连接还是报错可以在 /etc/my.cnf下添加 bind-address = 0.0.0.0
           

windows环境

  1. 安装
  • 直接将sonarqube-6.7.7.zip解压到自定义目录下
  1. 配置
  • 解压根目录下,conf下sonar.properties配置修改
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.web.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.jdbc.url=jdbc:mysql://123.56.26.20:3308/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=127.0.0.1
sonar.web.port=9000
           
  • 自定义jdk版本配置wrapper.conf
# Path to JVM executable. By default it must be available in PATH.
# Can be an absolute path, for example:
#wrapper.java.command=/path/to/my/jdk/bin/java  #自定义路径java
wrapper.java.command=java   #默认环境下的java
           
  • 启动

    安装路径\bin\windows-x86-64\StartSonar.bat 双击

centos7.x环境

  1. 安装
  • 直接将sonarqube-6.7.7.zip解压到自定义目录下
  1. 配置
  • 配置conf下sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.web.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
sonar.jdbc.url=jdbc:mysql://123.56.26.20:3308/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=127.0.0.1
sonar.web.port=9000
           
  • 自定义jdk版本配置wrapper.conf
# Path to JVM executable. By default it must be available in PATH.
# Can be an absolute path, for example:
#wrapper.java.command=/path/to/my/jdk/bin/java  #自定义路径java
wrapper.java.command=java   #默认环境下的java
           
  • 启动
sh sonarqube-6.7.7\bin\linux-x86-64\sonar.sh start # 停止:stop 重启:restart
           
  • 初始化soanr

    访问 http://127.0.0.1:9000

    登录:admin admin

    根据引导生成token,保存好token

    可以开始使用了

ideal中配置使用sonarline

sonar6.7部署用于ideal的sonarline
  • 填入生成的token
    sonar6.7部署用于ideal的sonarline
  • 使用
    sonar6.7部署用于ideal的sonarline

    1、全局使用,右键工程,选择sonarline扫描,结果查看在report栏

    2、单个文件使用,右键文件,选择sonarline扫描,结果查看在current file栏

    可设置成自动扫描,这样在写代码的时候会及时生成结果,如图开启

    sonar6.7部署用于ideal的sonarline
    3、每个生成结果详细的规则说明在右侧的rule里
    sonar6.7部署用于ideal的sonarline
    4、等级划分
    sonar6.7部署用于ideal的sonarline

继续阅读