代码检查工具sonarqube介绍及使用
亲测有效
环境:springboot+gradle+jdk1.8+sonarqube7.4
一、说明:
SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。
通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式等,官网是这么列举的很方便集成:
- Gradle - 用于Gradle的SonarScanner
- MSBuild - 用于MSBuild的SonarScanner
- Maven - 使用SonarScanner for Maven
- Jenkins - Jenkins的SonarScanner
- Azure DevOps - Azure DevOps的SonarQube扩展
- Ant - 用于Ant的SonarScanner
- 其他任何东西(CLI) - SonarScanner
每一种都有自己的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行查看管理
架构图
下载sonarqube包:https://www.sonarqube.org/。现在下载使用的是7.4。下载后是zip格式,linux下和windows下都是这个包,解压即可。
下载sonarqube中文包:地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases,根据对应的版本,下载对应的sonar-l10n-zh-plugin-***.jar包,下载下来后,把jar放到sonarqube-7.4/extensions/plugins目录下,
二、配置
配置文件为/conf/sonar.properties。可以设置使用的数据库和提供的ip和端口。使用postgresql数据库需要注意不能指定模式名称,必须使用默认的default。如果不使用需要按照文档做更多配置来支持。现在配置如下即可
sonar.jdbc.url=jdbc:postgresql://192.169.31.106:5432/sonar
sonar.jdbc.username=postgres
sonar.jdbc.password=123456
sonar.web.host=192.169.31.107
sonar.web.port=9000
数据库可以不进行配置,若不配置则使用自带数据库,不支持数据迁移。Ip为部署机器的ip
三、启动
Windows下:在sonarqube-7.4/bin目录下,根据对应的系统版本,选择对应的文件夹,我的是windows 64位,故选择windows-x86-64目录,打开文件StartSonar.bat ,
Linux下:
1、 创建新用户:adduser sonarUser
2、 改变权限:、chown -R sonarUser:sonarUser /usr/local/sonarqube-7.4/
3、 切换至普通用户下,进入bin/linux64启动下:./sonar.sh console 日志启动模式;./sonar.sh start 后台启动模式;第一次启动可以使用日志模式查看下是否能成功启动,若没有问题,停掉后再切换为后台启动
4、 如果启动出错可以查看下/sonarqube-7.4/temp/conf/es的权限是改变了,如果没有改变则重新执行chown -R sonarUser:sonarUser /usr/local/sonarqube-7.4/对应目录
四、gradle集成:
Build.gradle中配置:
plugins {
id "org.sonarqube" version "2.6.2"
}
buildscript{
repositories{
maven{
url"https://plugins.gradle.org/m2/"
}
}
dependencies{
classpath"org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2"
}
}
apply plugin:"org.sonarqube"
在build.gradle平级目录新建gradle.properties配置文件。内容为systemProp.sonar.host.url=http://172.16.31.107:9000。次配置是为了将扫描代码结果传送给sonar服务。
在gradle命令行输入:gradle sonarqube即可进行扫描。
五、打开浏览器输入192.169.31.107:9000访问扫描结果。
代码检查工具sonarqube介绍及使用的更多相关文章
- 代码检查工具sonarqube介绍
SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量.通过插件形式,可以支持众多计算机语言. 比如 java, C#, go,C/C++, PL/SQL,Cobol,Jav ...
- Android 代码检查工具SonarQube
http://blog.csdn.net/rain_butterfly/article/details/42170601 代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一 ...
- [原创]Java静态代码检查工具介绍
[原创]Java静态代码检查工具介绍 一 什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...
- 代码检查工具jshint和csslint
前面的话 Douglas Crockford大神根据自己的理念用JavaScript写了一个JavaScript代码规范检查工具,这就是JSLint.后来非常流行,也的确帮助了广大的JavaScrip ...
- CSS代码检查工具stylelint
前面的话 CSS不能算是严格意义的编程语言,但是在前端体系中却不能小觑. CSS 是以描述为主的样式表,如果描述得混乱.没有规则,对于其他开发者一定是一个定时炸弹,特别是有强迫症的人群.CSS 看似简 ...
- Python静态代码检查工具Flake8
简介 Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强.Flake8是对 ...
- 《Android Studio实用指南》7.1 AndroidStudio代码检查工具概述
本文节选自<Android Studio实用指南> 作者: 毕小朋 目前本书已上传到百度阅读, 在百度中搜索[Anroid Studio实用指南]便可以找到本书. Android Stud ...
- 《Android Studio有用指南》7.1 AndroidStudio代码检查工具概述
本文节选自<Android Studio有用指南> 作者: 毕小朋 博客: http://blog.csdn.net/wirelessqa 眼下本书已上传到百度阅读, 在百度中搜索[Anr ...
- PC-lint 简明教程(C/C++静态代码检查工具)
前言 PC-lint是一款小而强大的C/C++静态代码检查工具,它可以检查未初始化变量,数组越界,空指针等编译器很难发现的潜在错误.在很多专业的软件公司如Microsoft,PC-Lint检查无错误无 ...
随机推荐
- FZU - 1606 - Format the expression
先上题目: Problem 1606 Format the expression Accept: 87 Submit: 390Time Limit: 1000 mSec Memory Li ...
- 阶梯博弈&POJ 1704
阶梯博弈: 先借用别人的一幅图片.(1阶梯之前还有一个0阶梯未画出) 阶梯博弈的最初定义是这样的:每一个阶梯只能向它的前一个阶梯移动本阶梯的点,直至最后无法移动的为输. 那么,利用NIM,只计算奇数级 ...
- 【机房收费系统C#版】——导出Excel
前言 机房合作開始好长了一段时间.反重复复开了几次会,项目也是一拖再拖,作为组长.有80%的责任都在于我.为了不让这个项目陪着我过春节.要求自己一定要在这几天敲完. 还是一样的问题,用C#敲,从一開始 ...
- 【iOS开发系列】九宫格布局
/** * 这个尽管非常easy,算是一个小技巧,可是碰到了就记录下来吧.积跬步,致千里嘛. */ - (void)scratchableLatex { for (int i=0; i<9; i ...
- er图简单回顾
实体对象:矩形 属性:椭圆 关系:菱形 一对一,一对多,多对一,多对多
- Selenium webdriver-UI Element定位
转:http://blog.csdn.net/jillliang/article/details/8206402 1.创建Fixfox web driver实例 WebDriver driver = ...
- 国外物联网平台初探(六) ——Electric Imp
公司背景 Electric Imp成立于2011年,公司设立在美国加利福尼亚州洛斯阿尔托斯和英国剑桥 公司投资者包括:富士康技术集团.PTI创投.Rampart资本.Redpoint创投 定位 Ele ...
- Floyed理解
Floyed理解 Floyd算法的本质是动态规划,其转移方程为:f(k,i,j) = min( f(k-1,i,j), f(k-1,i,k)+f(k-1,k,j) ). f(k-1,i,j)表示经过前 ...
- PHP 和 Java 的主要区别有哪些?
PHP 和 Java 的主要区别有哪些? 其实Java方面我要学的真的还有很多,要是有大项目的机会和经验就好,所以提前我肯定要把基础打扎实. 我要学的还有很多,比如前段,后端,还有linux,还有肯定 ...
- js滚动
有选择性的重复造一些轮子,未必是件坏事.Aaron的博客上加了一个悬浮菜单,貌似显得很高大上了.虽然这类小把戏也不是头一次见了,但是从未自己写过.今天就选择性的拿这个功能写一写.下面是这个轮子的开发过 ...