SonarQube安装教程与简单使用(基于Centos7,JDK1.8)
SonarQube
若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11686522.html
概念:

SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。
优点:对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar;集成不同的测试工具,代码分析工具,以及CI工具,比如pmd-cpd、checkstyle、findbugs、Jenkins;
在CentOS系统中安装SonarQube:
环境需求:Jdk 1.8,MySQL
另外,本次实践的CentOS7服务器的IP为:10.141.211.174
数据库配置:
进入mysql,创建数据库sonar,密码为sonar
$ mysql -u root -p mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;
使用wget命令下载安装包,链接如下:
sonarqube: https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.2.zip
sonar-scanner-cli: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip
可以自己更改需要的版本号(进入地址的Distribution/中进行查看)
具体命令如下:
# 下载压缩包并解压
cd /usr/local
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.2.zip
unzip sonarqube-7.2.zip # 添加用户sonar,并更改 该目录 的owner(原因:sonarqube中的es不许以root启动,故以sonar用户来启动)
useradd sonar
chown -R sonar. /usr/local/sonarqube-7.2
编辑sonarqube配置文件
vi /usr/local/sonarqube-7.2/conf/sonar.properties
相应的修改处如下:
1.
# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar 2.
#----- DEPRECATED
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false 3.
# Binding IP address. For servers with more than one IP address, this property specifies which
# address will be used for listening on the specified ports.
# By default, ports will be used on all IP addresses associated with the server.
sonar.web.host=10.141.211.174 (填写本机IP)
然后保存并退出。
运行脚本启动服务
cd /usr/local/sonarqube-7.2/
# 以普通用户sonar启动服务,不然es启动会报错,用法:console、start、status、stop...
su sonar bin/linux-x86-64/sonar.sh start # 查看状态,但这个状态只是暂时的,并不可信
su sonar bin/linux-x86-64/sonar.sh status
# 跟踪日志,确保启动成功(先跟着sonar.log日志,如果报es错误,可以去查看es.log;如果报了web错误,那么就是查看web.log)
tail -f logs/sonar.log
登录web端:
在浏览器输入:http://IP:9000 ,即可成功进入(初始用户:admin ,初始密码:admin,设置好token即可)。
安装Sonar-Scanner:
下载压缩包并解压(最好用sonar-scanner-2.8版本,支持jdk1.8,否则其他版本会出错)
cd /usr/local
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip
unzip sonar-scanner-2.8.zip # 解压后,目录名改为sonar-scanner
编辑 /etc/profile 文件
把以下配置添加到文件末尾,如下: #set sonar-scanner environment
export SONAR_SCANNER_HOME=/usr/local/sonar-scanner
export PATH=${SONAR_SCANNER_HOME}/bin:${PATH} 然后执行命令: source /etc/profile
查看sonar-scanner版本:
sonar-scanner -v
然后根据提示,编辑sonar-scanner.properties文件,如下:vi /usr/local/sonar-scanner/conf/sonar-scanner.properties 修改SonarQube server的地址,改为前面SonarQube的地址(我的是http://10.141.211.174:9000)
#----- Default SonarQube server
sonar.host.url=http://10.141.211.174:9000 去掉mysql的注释
#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
尝试使用SonarQube:
保证SonarQube已经启动,若没有启动可以运行:
su sonar /usr/local/sonarqube-7.2/bin/linux-x86-64/sonar.sh start克隆一个项目到本地:
git clone xxx在该项目的根目录中,创建文件 sonar-project.properties,并对其进行编辑,编辑内容如下:
# must be unique in a given SonarQube instance
sonar.projectKey=simple-java-maven-app
sonar.projectName=simple-java-maven-app
sonar.projectVersion=1.0
sonar.sources=src
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.java.binaries=/usr/local/workspace/simple-java-maven-app/target/classes
使用sonar-scanner进行分析,在项目根目录中执行命令:
sonar-scanner,然后就可以到http://10.141.211.174:9000 查看分析结果了。
除了sonar-scanner命令,我们也可以使用maven的命令来实现同样的代码分析效果,命令如下:mvn sonar:sonar \
-Dsonar.host.url=http://10.141.211.174:9000 \
-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)的更多相关文章
- Directx11教程(54) 简单的基于GS的billboard实现
原文:Directx11教程(54) 简单的基于GS的billboard实现 本章我们用一个billboard的实现来学习D3D11中的GS. 在VS shader中,我们输入的是顶点 ...
- 2021最新WordPress安装教程(一):Centos7安装Apache
一转眼2020年已经过去了,看网络上很多WordPress的安装教程都比较旧,有些写的不太详细,WordPress是站长最喜欢的一款建站系统,数据统计到2020年为止,WordPress在所有网站的市 ...
- scala安装教程及简单配置
本文将介绍以下内容:Windows下安装scala运行环境,安装编译工具并简单配置,实现著名的“Hello,World". 一,Windows下安装scala运行环境 1.配置jdk,因为s ...
- pyltp安装教程及简单使用
1.pyltp简介 pyltp 是哈工大自然语言工作组推出的一款基于Python 封装的自然语言处理工具(轮子),提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能. 2.pyltp ...
- 「下载神器」aria2 懒人安装教程 [Windows]
是一款开源.轻量级的多协议命令行下载工具,支持 HTTP/HTTPS.FTP.SFTP.BitTorrent 和 Metalink 协议,拥有众多第三方支持插件,被誉为「下一代下载工具」和「下载神器」 ...
- Vs Code 2019软件安装教程及常用的入门设置
小编认为VsCode是一款非常好用的编辑器,插件丰富,支持的语言种类非常多.我所使用VsCode主要打一些前端的代码,自己感觉very good. 点击运行. 按图所示操作. 安装教程很简单的,主要是 ...
- 2021最新WordPress安装教程(三):安装WordPress详细步骤
前面已经通过< 2021最新WordPress安装教程(一):Centos7安装Apache>和< 2021最新WordPress安装教程(二):配置PHP和MySQL>两篇文 ...
- 2021最新WordPress安装教程(二):安装PHP和MySQL
这是 2021最新WordPress安装教程系列的第二篇文章,前一篇文章< 2021最新WordPress安装教程(一):Centos7安装Apache>已经完整的介绍了如何在Centos ...
- [转]Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) --有部份地方有问题
Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) [转载]原文地址:http://canonind.blog.51cto.com/8239025/1883066 一.安装前 ...
随机推荐
- 条件随机场CRF原理介绍 以及Keras实现
本文是对CRF基本原理的一个简明的介绍.当然,“简明”是相对而言中,要想真的弄清楚CRF,免不了要提及一些公式,如果只关心调用的读者,可以直接移到文末. 图示# 按照之前的思路,我们依旧来对比一下普通 ...
- [技术博客]使用adb命令获取app(游戏)错误和警告日志
adb命令的使用 直接在命令行中输入: adb logcat *:W 注意:这句命令的意思是显示所有优先级大于等于警告(Warning)的日志,查找崩溃问题一般用: adb logcat *:E 注意 ...
- opener和parent的区别
openeropener用于在window.open的页面引用执行该window.open方法的的页面的对象.例如:A页面通过window.open()方法弹出了B页面,在B页面中就可以通过opene ...
- Linux上DNS解析总是选择resolv.conf中第二位的DNS服务器IP地址
问题现象: 在Linux机器上,用户自建了一台DNS服务器.然后改动/etc/resolv.conf将其服务器IP地址添加到第一项.将阿里云的内网DNS放到第二位,然而在测试过程中发现telnet,p ...
- stream_context_create解析
(PHP 4 >= 4.3.0, PHP 5, PHP 7) stream_context_create — 创建资源流上下文 说明¶ stream_context_create ([ arra ...
- 微信小程序公共方法创建与调用
在根节点建个 utils 文件夹,在文件夹下建立 util.js 在util.js里面写入 var util = {}; util.getUserId= function(e, t) { ...
- C# RSA 无 长度限制 加密解密 示例
RSA 是一种非对称加密算法.由于算法特性,加密和解密过程用不同密钥,即公钥和私钥,而被广泛应用于数字证书的安全管理. 在具体应用中,公钥用加密而私钥用于解密,或 私钥用于数字签名而公钥用于签名验证. ...
- 判断mysql数据库表和表字段是否存在
1.判断数据库表是否存在, // mysqlSELECT table_name FROM information_schema.tables WHERE table_name=#{tableName, ...
- groupby 的妙用(注意size和count)
Pandas的groupby()功能很强大,用好了可以方便的解决很多问题,在数据处理以及日常工作中经常能施展拳脚. 今天,我们一起来领略下groupby()的魅力吧. 首先,引入相关package: ...
- python开源项目聚合推荐【1】
******************************************************* 01项目名:unimatrix 功能介绍:Python模拟“黑客帝国”影片中的终端动画脚 ...