再好的程序员也会出bug,所以代码检查很有必要。今天就出一个简单的检查工具代替人工检查。

参考:

http://www.cnblogs.com/qiaoyeye/p/5249786.html

环境及版本

jdk: 1.7

sonarqube:http://www.sonarqube.org/downloads/ 我这里使用 sonarqube-5.3.zip

SonarQube+Scanner:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.5.zip

mysql

百度云:

http://pan.baidu.com/s/1gfCAvAz

1.解压sonarqube-5.3.zip之后打开

E:\installFile\qube\newQube\sonarqube-5.3\bin\windows-x86-64\StartSonar.bat

2.启动浏览器,访问http://localhost:9000,如出现下图则表示安装成功。

3.配置 sonarqube 数据库

E:\installFile\qube\newQube\sonarqube-5.3\conf\sonar.properties

sonar.jdbc.url=jdbc:mysql://localhost:3306/world?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=centos
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

4.重启sonarqube服务,再次访问http://localhost:9000,会稍微有点慢,因为要初始化数据库信息

5.数据库初始化成功后,登录

6.解压 sonar-scanner-2.5.zip

E:\installFile\qube\newQube\sonar-scanner-2.5.1

7.配置数据库信息

E:\installFile\qube\newQube\sonar-scanner-2.5.1\conf\sonar-runner.properties

sonar.jdbc.url=jdbc:mysql://localhost:3306/world?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=centos

注意:如果测试项目与服务器不在同一台机子,则需要添加服务器的IP:

#----- Default SonarQube server
sonar.host.url=http://XXX.XXX.XXX.XXX:9000

8.配置环境变量

a.新建变量,name=SONAR_RUNNER_HOME。value=E:\installFile\qube\newQube\sonar-scanner-2.5.1

b.打开path,输入%SONAR_RUNNER_HOME%\bin;

c.sonar-runner -v,出现以下信息,则表示环境变量设置成功

9.打开要进行代码分析的项目根目录,新建sonar-project.properties文件

10.输入以下信息 注意以记事本打开,unicode编码编辑。

# Root project information
sonar.projectKey=efc.eac
sonar.projectName=efc.eac
sonar.projectVersion=1.0 # Some properties that will be inherited by the modules
sonar.sources=src # List of the module identifiers
sonar.modules=efc.eac.api.dao,efc.eac.api.impl,efc.eac.api.service,efc.eac.commons,efc.eac.core.dao,efc.eac.core.impl,efc.eac.core.service,efc.eac.core.web,efc.eac.dict.dao,efc.eac.dict.impl,efc.eac.dict.service,efc.eac.dict.web,efc.eac.gerp.dao,efc.eac.gerp.impl,efc.eac.gerp.service,efc.eac.gerp.web,efc.eac.log.dao,efc.eac.log.impl,efc.eac.log.service,efc.eac.log.web,efc.eac.war # Properties can obviously be overriden for
# each module - just prefix them with the module ID
efc.eac.api.dao.sonar.projectName=efc.eac.api.dao
efc.eac.api.impl.sonar.projectName=efc.eac.api.impl
efc.eac.api.service.sonar.projectName=efc.eac.api.service
efc.eac.commons.sonar.projectName=efc.eac.commons
efc.eac.core.dao.sonar.projectName=efc.eac.core.dao
efc.eac.core.impl.sonar.projectName=efc.eac.core.impl
efc.eac.core.service.sonar.projectName=efc.eac.core.service
efc.eac.core.web.sonar.projectName=efc.eac.core.web
efc.eac.dict.dao.sonar.projectName=efc.eac.dict.dao
efc.eac.dict.impl.sonar.projectName=efc.eac.dict.impl
efc.eac.dict.service.sonar.projectName=efc.eac.dict.service
efc.eac.dict.web.sonar.projectName=efc.eac.dict.web
efc.eac.gerp.dao.sonar.projectName=efc.eac.gerp.dao
efc.eac.gerp.impl.sonar.projectName=efc.eac.gerp.impl
efc.eac.gerp.service.sonar.projectName=efc.eac.gerp.service
efc.eac.gerp.web.sonar.projectName=efc.eac.gerp.web
efc.eac.log.dao.sonar.projectName=efc.eac.log.dao
efc.eac.log.impl.sonar.projectName=efc.eac.log.impl
efc.eac.log.service.sonar.projectName=efc.eac.log.service
efc.eac.log.web.sonar.projectName=efc.eac.log.web
efc.eac.war.sonar.projectName=efc.eac.war

其中:projectName是项目名字,sources是源文件所在的目录

11.在cmd进入项目所在的根目录,输入命令:sonar-runner,分析成功后打开http://localhost:9000/,我们会看到主页出现了分析项目的概要图

12.点击相应的项目进入

13.查看问题

14.查看bug

15.进入bug详情查看具体信息

16.随便看一个,打印日志的建议。

sonarqube 代码检查的更多相关文章

  1. Android 代码检查工具SonarQube

    http://blog.csdn.net/rain_butterfly/article/details/42170601 代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一 ...

  2. 代码检查工具sonarqube介绍及使用

    亲测有效 环境:springboot+gradle+jdk1.8+sonarqube7.4 一.说明: SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速 ...

  3. Jenkins+SonarQube代码质量检查自动化

    基础概念百度百科:Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:1.持续的软件版本发布/测试项目.2.监控外部调用执行的工作.前面[Sonarqube 代码质量 ...

  4. 在Jenkins中使用sonar进行静态代码检查

    要解决的问题 jenkins自动构建完成后,希望能通过sonar静态代码检查生成一份报告,给与开发人员对当前代码的做一个质量评估和修改意见 1.安装并配置sonar服务器 懒得说,跟着官方文档走就行, ...

  5. SonarQube4.4+Jenkins进行代码检查实例之三-单元測试分析

    作者:张克强    作者微博:张克强-敏捷307 在 <SonarQube4.4+Jenkins进行代码检查实例之中的一个> 中介绍了不编译仅仅检查的方式. 在<SonarQube4 ...

  6. Jenkins之Sonar 代码检查

    一.简介 SonarQube 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等 ...

  7. 十分钟搭建和使用sonarqube代码质量管理平台

    前言 Sonarqube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java.C.C++.JavaScripe等等二十几种编程语言的代码质量 ...

  8. DevOps之持续集成SonarQube代码质量扫描

    一.SonarQube介绍       SonarQube是一个用于代码质量检测管理的开放平台,可以集成不同的检测工具,代码分析工具,以及持续集成工具.SonarQube 并不是简单地把不同的代码检查 ...

  9. 代码检查工具 Sonar 安装&使用

    本文主要说明Sonar的安装方式并附上依赖安装包,本文目标只实现本地搭建测试的Sonar环境,以及本地的测试项目的非定制化扫描 本机测试环境:Win10-X64,.vs2017      依赖包: 1 ...

随机推荐

  1. 用 C# 计算 与 java 一致的unix时间戳 (长时间整形 如:1476956079961)

    背景: 调用java提供接口,需要长时间整形作为验证. 预备知识: 1. java 的 System.currentTimeMillis() 计算的长整型,是从1970年1月1日开始,截止当前的毫秒数 ...

  2. GBDT 简述

    GBDT 全称 Gradient Boosting Decision Tree,梯度提升决策树. 梯度增强决策树的思想来源于两个地方,首先是增强算法(Boosting),然后是梯度增强(Gradien ...

  3. ubuntu14.04, libtinyxml.so.2.6.2: cannot open shared object file: No such file or directory

    打包/opt/ros 打包项目文件install 到一台没有安装ros环境的机器上启动项目 source ros/indigo/setup.bash source install/setup.bash ...

  4. [原][译][physX]phsyX3.3.4官方文档物理引擎基本概念和例子介绍

    世界和物体: 物理世界包括集合的场景,每个包含的物体称为演员(Actors) 每个场景(Scene)都定义了自己的参考框架包含了所有的时间和空间 在不同的场景,演员不互相影响 演员通常有三种类型:刚体 ...

  5. Android GridView 分页加载数据

    android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: package cn.anycall.ju; import java.util.ArrayList; import java ...

  6. Codeforces 834D - The Bakery(dp+线段树)

    834D - The Bakery 思路:dp[i][j]表示到第j个数为止分成i段的最大总和值. dp[i][j]=max{dp[i-1][x]+c(x+1,j)(i-1≤x≤j-1)},c(x+1 ...

  7. Lua面向对象 --- 封装

    工程结构: Player.lua: Player = {} function Player:new() local self = {} setmetatable(self, {__index = Pl ...

  8. spoj Fast Multiplication

    题意:乘法 要用nlogn的fft乘法. //#pragma comment(linker,"/STACK:1024000000,1024000000") #include< ...

  9. nyoj737石子合并(一)

    先得出区间为1和2时的结果.用arr[i][j]记录i,j内的和.dp[i][j]记录i,j区间全加起来的最小花费.那么区间大小为1和2时都是明显的.为3时枚举断点.其中一个区间大小为1也是可行的. ...

  10. 我的Java学习笔记-语法

    Java的语法与C#的语法基本都一样,毕竟都是面向对象编程语言.下面记录下Java独有的和我在C#中学习不熟的语法知识 一.Java是解释型语言 二.Java修饰符 1. 访问控制修饰符 defaul ...