SonarQube

若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11686522.html

概念:



SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。

优点:对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar;集成不同的测试工具,代码分析工具,以及CI工具,比如pmd-cpd、checkstyle、findbugs、Jenkins;

在CentOS系统中安装SonarQube:

环境需求:Jdk 1.8MySQL

另外,本次实践的CentOS7服务器的IP为:10.141.211.174

  1. 数据库配置:

    1. 进入mysql,创建数据库sonar,密码为sonar
    2. $ mysql -u root -p
    3. mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
    4. mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
    5. mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
    6. mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
    7. mysql> FLUSH PRIVILEGES;
  2. 使用wget命令下载安装包,链接如下:

    1. sonarqube: https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.2.zip
    2. sonar-scanner-cli https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip
    3. 可以自己更改需要的版本号(进入地址的Distribution/中进行查看)

    具体命令如下:

    1. # 下载压缩包并解压
    2. cd /usr/local
    3. wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.2.zip
    4. unzip sonarqube-7.2.zip
    5. # 添加用户sonar,并更改 该目录 的owner(原因:sonarqube中的es不许以root启动,故以sonar用户来启动)
    6. useradd sonar
    7. chown -R sonar. /usr/local/sonarqube-7.2
  3. 编辑sonarqube配置文件

    1. vi /usr/local/sonarqube-7.2/conf/sonar.properties
    2. 相应的修改处如下:
    3. 1.
    4. # User credentials.
    5. # Permissions to create tables, indices and triggers must be granted to JDBC user.
    6. # The schema must be created first.
    7. sonar.jdbc.username=sonar
    8. sonar.jdbc.password=sonar
    9. 2.
    10. #----- DEPRECATED
    11. #----- MySQL >=5.6 && <8.0
    12. # Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
    13. # Only InnoDB storage engine is supported (not myISAM).
    14. # Only the bundled driver is supported. It can not be changed.
    15. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
    16. 3.
    17. # Binding IP address. For servers with more than one IP address, this property specifies which
    18. # address will be used for listening on the specified ports.
    19. # By default, ports will be used on all IP addresses associated with the server.
    20. sonar.web.host=10.141.211.174 (填写本机IP

    然后保存并退出。

  4. 运行脚本启动服务

    1. cd /usr/local/sonarqube-7.2/
    2. # 以普通用户sonar启动服务,不然es启动会报错,用法:console、start、status、stop...
    3. su sonar bin/linux-x86-64/sonar.sh start
    4. # 查看状态,但这个状态只是暂时的,并不可信
    5. su sonar bin/linux-x86-64/sonar.sh status
    6. # 跟踪日志,确保启动成功(先跟着sonar.log日志,如果报es错误,可以去查看es.log;如果报了web错误,那么就是查看web.log)
    7. tail -f logs/sonar.log
  5. 登录web端:

    在浏览器输入:http://IP:9000 ,即可成功进入(初始用户:admin ,初始密码:admin,设置好token即可)。

安装Sonar-Scanner:

  1. 下载压缩包并解压(最好用sonar-scanner-2.8版本,支持jdk1.8,否则其他版本会出错)

    1. cd /usr/local
    2. wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip
    3. unzip sonar-scanner-2.8.zip # 解压后,目录名改为sonar-scanner
  2. 编辑 /etc/profile 文件

    1. 把以下配置添加到文件末尾,如下:
    2. #set sonar-scanner environment
    3. export SONAR_SCANNER_HOME=/usr/local/sonar-scanner
    4. export PATH=${SONAR_SCANNER_HOME}/bin:${PATH}
    5. 然后执行命令: source /etc/profile
  3. 查看sonar-scanner版本:sonar-scanner -v

    然后根据提示,编辑sonar-scanner.properties文件,如下:

    1. vi /usr/local/sonar-scanner/conf/sonar-scanner.properties
    2. 修改SonarQube server的地址,改为前面SonarQube的地址(我的是http://10.141.211.174:9000)
    3. #----- Default SonarQube server
    4. sonar.host.url=http://10.141.211.174:9000
    5. 去掉mysql的注释
    6. #----- MySQL
    7. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8

尝试使用SonarQube:

  1. 保证SonarQube已经启动,若没有启动可以运行:su sonar /usr/local/sonarqube-7.2/bin/linux-x86-64/sonar.sh start

  2. 克隆一个项目到本地:git clone xxx

  3. 在该项目的根目录中,创建文件 sonar-project.properties,并对其进行编辑,编辑内容如下:

    1. # must be unique in a given SonarQube instance
    2. sonar.projectKey=simple-java-maven-app
    3. sonar.projectName=simple-java-maven-app
    4. sonar.projectVersion=1.0
    5. sonar.sources=src
    6. sonar.language=java
    7. sonar.sourceEncoding=UTF-8
    8. sonar.java.binaries=/usr/local/workspace/simple-java-maven-app/target/classes
  4. 使用sonar-scanner进行分析,在项目根目录中执行命令:sonar-scanner,然后就可以到http://10.141.211.174:9000 查看分析结果了。

    除了sonar-scanner命令,我们也可以使用maven的命令来实现同样的代码分析效果,命令如下:

    1. mvn sonar:sonar \
    2. -Dsonar.host.url=http://10.141.211.174:9000 \
    3. -Dsonar.login=acfa9b0585a3c0a10366826143edebf4abd36f6b # 这个是sonarqube登录时的token

参考:

https://www.cnblogs.com/ding2016/p/8065241.html

https://www.cnblogs.com/owenma/p/7891170.html

https://blog.csdn.net/qq_21816375/article/details/80787993

SonarQube安装教程与简单使用(基于Centos7,JDK1.8)的更多相关文章

  1. Directx11教程(54) 简单的基于GS的billboard实现

    原文:Directx11教程(54) 简单的基于GS的billboard实现     本章我们用一个billboard的实现来学习D3D11中的GS.     在VS shader中,我们输入的是顶点 ...

  2. 2021最新WordPress安装教程(一):Centos7安装Apache

    一转眼2020年已经过去了,看网络上很多WordPress的安装教程都比较旧,有些写的不太详细,WordPress是站长最喜欢的一款建站系统,数据统计到2020年为止,WordPress在所有网站的市 ...

  3. scala安装教程及简单配置

    本文将介绍以下内容:Windows下安装scala运行环境,安装编译工具并简单配置,实现著名的“Hello,World". 一,Windows下安装scala运行环境 1.配置jdk,因为s ...

  4. pyltp安装教程及简单使用

    1.pyltp简介 pyltp 是哈工大自然语言工作组推出的一款基于Python 封装的自然语言处理工具(轮子),提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能. 2.pyltp ...

  5. 「下载神器」aria2 懒人安装教程 [Windows]

    是一款开源.轻量级的多协议命令行下载工具,支持 HTTP/HTTPS.FTP.SFTP.BitTorrent 和 Metalink 协议,拥有众多第三方支持插件,被誉为「下一代下载工具」和「下载神器」 ...

  6. Vs Code 2019软件安装教程及常用的入门设置

    小编认为VsCode是一款非常好用的编辑器,插件丰富,支持的语言种类非常多.我所使用VsCode主要打一些前端的代码,自己感觉very good. 点击运行. 按图所示操作. 安装教程很简单的,主要是 ...

  7. 2021最新WordPress安装教程(三):安装WordPress详细步骤

    前面已经通过< 2021最新WordPress安装教程(一):Centos7安装Apache>和< 2021最新WordPress安装教程(二):配置PHP和MySQL>两篇文 ...

  8. 2021最新WordPress安装教程(二):安装PHP和MySQL

    这是 2021最新WordPress安装教程系列的第二篇文章,前一篇文章< 2021最新WordPress安装教程(一):Centos7安装Apache>已经完整的介绍了如何在Centos ...

  9. [转]Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) --有部份地方有问题

    Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) [转载]原文地址:http://canonind.blog.51cto.com/8239025/1883066 一.安装前 ...

随机推荐

  1. 修改 oracle xe 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    修改 oracle xe 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK Oracle XE 执行安装程序后,很简单的默认为  SIMPLIFIED CHINE ...

  2. 新手AS常见问题集锦

    开发环境 以前开发android的时候可以使用eclipse,虽然现在也能使用eclipse,但是google已经不再支持使用eclipse开发android了.因为google有了自己的IDE--- ...

  3. AtCoder刷题记录

    构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...

  4. JMeter的基本使用

    什么是Jmeter JMeter是Apache基于Java开发的压力测试工具,通俗的说,你想知道你的接口有多猛,你的服务器是否耐揍,这个家伙可以用数据告诉你.原来学过JMeter的基本使用,发现想不起 ...

  5. Django 的 slug url 正则匹配

    如果按照 .* 去匹配,最后会把 /edit/ 和 /delete/ 也匹配进去. urlpatterns = [ #... url(r'^(?P<slug>.*)/$', post_de ...

  6. 一个bug程序员的入园

    大家好,我叫dg是一个只写bug的程序员.当然只写bug也是有好处的,那就是踩过的坑多了,摔的跟斗多了,并且没有被摔死,勇敢的活了下来,练就了一身钢筋铁骨.哈哈,开个玩笑.但是猜的坑多了就知道了哪里有 ...

  7. Tecplot——为动画添加求解时间(翻译)

    翻译自:<Tecplot 360 Getting Started Manual>中的Scenic Detour: Add Solution Time Caption 首先展示效果: 在画图 ...

  8. vue中axios使用二:axios以post,get,jsonp的方式请求后台数据

    本文为博主原创,转载请注明出处 axios在上一篇中讲过:vue中axios使用一:axios做拦截器,axios是请求后台资源的模块,用来请求后台资源. axios本身是支持get,post请求后台 ...

  9. NodeJs FS 文件系统模块

    1. fs.stat 检测是文件还是目录 fs.stat('html',function(err,stats){ if(err){ console.log(err); return false; } ...

  10. StandardServer.await: Invalid command '' received

    tomcat服务运行时 后台提输出警告:StandardServer.await: Invalid command '' received 这个警告是 多个tomcat启动时会出现端口占用的情况, 将 ...