代码质量管理平台SonarQube安装使用Centos7 一

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量

通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测

Sonar是从七个维度检测代码质量,而作为开发人员至少需要处理前5中代码质量问题

1 没有代码标准,不遵循代码标准
  sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写

2 潜在的bug,潜在的缺陷
   sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug

3 糟糕的复杂度分布
 
  文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试

4 重复
  显然程序中包含大量复制粘贴的代码是质量低下,sonar可以展示源码中重复严重的地方

5 没有足够的或者过多的注释
  没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降,过多的注释又会使得开发人员将精力过多地花费在阅读注释

6 缺乏单元测试
  sonar可以很方便地统计并展示单元测试覆盖率

7 糟糕的设计(原文Spaghetti Design,意大利面式设计)
 
  通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系
 
  可以检测自定义的架构规则
 
  通过sonar可以管理第三方的jar
 
  可以利用LCOM4检测单个任务规则的应用情况
 
  检测耦合

tipsPMDCheckStyleFindbugs这些工具都叫静态代码分析工具。什么是静态代码分析?静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、接口等来检查程序的正确性,找出代码隐藏的错误或缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,空指针引用等

直接开始安装:

依耐安装:指定jdk1.8 、MySQL5.6-5.8、这两个都不安装,基础的东西就不写了

1:开始安装:切换至非rootzhan账户

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.6.zip

# unzip sonarqube-6.7.6.zip

2:mysql里新增数据库

登录后创建sonar的数据库以及数据库账号:

myslq -u root -p root

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

FLUSH PRIVILEGES;

3:修改sonarqube相应的配置

[hadoop@izwz99z5o9dc90keftqhlrz linux-x86-64]$ cd /home/hadoop/sonarqube-6.7.6/
[hadoop@izwz99z5o9dc90keftqhlrz sonarqube-6.7.6]$ pwd
/home/hadoop/sonarqube-6.7.6
 

vim sonarqube-6.7.6/conf/sonar.properties

sonar.jdbc.username=sonar

sonar.jdbc.password=soanr

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

sonar.web.context=/sonar   #一定要加斜杠

sonar.web.host=0.0.0.0

sonar.web.port=9000 

4:启动服务

[hadoop@izwz99z5o9dc90keftqhlrz linux-x86-64]$ pwd
/home/hadoop/sonarqube-6.7.6/bin/linux-x86-64
[hadoop@izwz99z5o9dc90keftqhlrz linux-x86-64]$ sh sonar.sh start
这里会遇到各种让人心碎的问题,解决的方法就是打开三个日志文件,随时盯着。这样就事情少得很,不然会tu吐血:

日志:

[hadoop@izwz99z5o9dc90keftqhlrz logs]$ pwd
/home/hadoop/sonarqube-6.7.6/logs

[hadoop@izwz99z5o9dc90keftqhlrz logs]$ ll
total 112
-rw-r--r-- 1 hadoop hadoop 20768 Feb 25 17:36 access.log
-rw-r--r-- 1 hadoop hadoop  2487 Feb 25 17:11 ce.log
-rw-r--r-- 1 hadoop hadoop  7549 Feb 25 17:11 es.log
-rw-r--r-- 1 hadoop hadoop  2373 Feb 25 17:11 sonar.log
-rw-r--r-- 1 hadoop hadoop 72083 Feb 25 17:11 web.log
 

主要观察的日志:sonar.log 、es.log、web.log

5:开启防火墙

9000端口要开出去,如果你是阿里云还需要配置好安全组策略

 firewall-cmd --permanent --add-port=9000/tcp

systemctl restart firewalld.service

6:启动成功标志

web地址:http://47.106.203.79:9000/sonar

sonar.log日志内容作参考

启动异常处理:

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解决65536

  切换到root用户,进入limits.d目录下修改配置文件

  vi /etc/security/limits.conf 

添加如下内容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

解决262144

切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf 

添加下面配置:

vm.max_map_count=655360

并执行命令:

sysctl –p

感谢这位博主,不然我也还在里面绕:https://blog.csdn.net/wxb880114/article/details/86672656

7:Idea使用

 

猜你喜欢

转载自blog.csdn.net/yexiaomodemo/article/details/87921284