一、前言

持续集成管理平台不只是CI服务器,是一系列软件开发管理工具的组合。

源码版本管理:svn、git

项目构建工具:Maven、Ant

代码质量管理:Sonar(Checkstyle、PMD、FindBugs……)

持续集成引擎:Hudson、Jenkins、Apache Continuum

应用持续部署:操作系统、JDK、Tomcat、JBoss…

:实现持续集成过程中还要用到其他各种工具、各种插件...

二、代码质量管理平台 -> SonarQube

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

静态代码分析工具:Checkstyle,FindBugs,PMD,Sonar

思路:我们可以先安装SonarQube,然后在sonarqube中安装checkstyle、findbugs、pmd插件,最后在jenkins中通过sonar scanner runner进行远程调用集成sonarqube,使用checkstyle、findbugs、pmd提高我们的代码质量!

温馨小提示

  1. 注意下载SonarQube的时候一定要根据自己的jdk以及mysql版本去下载对应的SonarQube版本!不然后面启动会出现自动停止!!!
  2. jenkins插件sonar scanner runner的版本要和sonarqube server的版本匹配!
  3. 两者使用的jdk版本也要对应一致!

了解:CI服务器 -> 持续集成服务器,CI Server会自动完成软件代码的编译和测试过程,我们可以通过使用Jenkins搭建CI服务器

SonarQube官方文档:https://docs.sonarqube.org/

1、下载SonarQube运行测试

小编基本环境
  1. windows系统
  2. jdk1.8.0_131
  3. mysql5.7版本
  4. maven3.6.1

温馨小提示

  1. 小编刚开始直接下载的是SonarQube最新版7.9,后来发现它配置文件中没有mysql配置,并且启动后自动停止,于是下载了官方提供的7.8版本,看了一下是支持mysql配置的!
  2. 注意sonarqube中关于mysql版本的要求!
SonarQube下载地址:https://www.sonarqube.org/downloads/

下载完后直接解压即可~

进入bin目录下选择自己相应的环境双击 StartSonar.bat 启动运行测试



启动成功后,可访问 http://localhost:9000 【sonarqube 默认启动端口为:9000】

2、SonarQube配置

修改在conf目录下 sonar.properties 配置文件 【其它的一些配置根据自己情况去除注释修改即可~】

  1. sonar.jdbc.username=root
  2. sonar.jdbc.password=root
  3. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

注:如果需要指定jdk版本运动启动,可如下配置 wrapper.conf 文件:

然后再进入bin目录下选择自己相应的环境双击 StartSonar.bat 启动运行

  1. 如果出现启动不了,就再重新试一次,因为我这里也是第2次才启动成功~
  2. 如果启动失败没有界面,可进入 logs 目录下查看相应错误信息并解决

3、安装汉化插件

点击右上角 Log in 登录 【默认用户名和密码都是admin】



选择 Administration -> Marketplace -> Plugins 中搜索 Chinese pack ,然后Install



最后重启即可!



4、安装checkstyle、findbugs、pmd插件

插件具体作用可自行百度了解

温馨小提示:这3个插件在我们的idea中也可以安装使用哦

5、SonarQube 使用

SonarQube有多种使用方式,eclipse或idea中使用,这里我们使用Maven Scanner

① 配置maven的settings.xml
  1. <profile>
  2. <id>sonar</id>
  3. <activation>
  4. <activeByDefault>true</activeByDefault>
  5. </activation>
  6. <properties>
  7. <sonar.jdbc.url>jdbc:jdbc://localhost:3306/sonarqube</sonar.jdbc.url>
  8. <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
  9. <sonar.jdbc.username>root</sonar.jdbc.username>
  10. <sonar.jdbc.password>root</sonar.jdbc.password>
  11. <!-- Sonar服务器访问地址 -->
  12. <sonar.host.url>http://localhost:9000</sonar.host.url>
  13. </properties>
  14. </profile>

② 使用

在maven项目中执行如下命令

  1. mvn clean install sonar:sonar

等待 BUILD SUCCESS



然后我们就可以访问 http://localhost:9000/projects 在项目中查看数据信息了~ 如下:

三、自动化构建、测试、部署 -> Jenkins

这里请手动转下一篇博客文章...

【Jenkins持续集成(一)】SonarQube 入门安装使用教程的更多相关文章

  1. Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken

    Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: ...

  2. Jenkins持续集成(上)-Windows下安装Jenkins

    环境:Windows 2008 R2.Jenkins2.235.1: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成SLB.配置管理.Jenkins)> ...

  3. Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02

    1.      Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.    最初接触Jenkins也是由于公司需求, ...

  4. [Jenkins]持续集成环境下fingbug插件的安装使用与配置

    参考:https://wiki.jenkins.io/display/JENKINS/FindBugs+Plugin 突然,天降杂事.我是想安安静静的做个美丽的测试...但是事与愿违,项目经理叫我帮忙 ...

  5. python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?

    python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...

  6. jenkins持续集成源码管理选项为None,构建失败找不到git.exe解决办法

    我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安 ...

  7. 【转】jenkins持续集成配置

    搭建jenkins持续集成服务器 1.jenkins简介 Jenkins,前身为Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括: 持续的软件版本发布/测试项目. 监控 ...

  8. Jenkins持续集成

    Jenkins持续集成 & .NET   最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,Blu ...

  9. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

随机推荐

  1. Go_笔试题记录-不熟悉的

    1.golang中没有隐藏的this指针,这句话的含义是() A. 方法施加的对象显式传递,没有被隐藏起来 B. golang沿袭了传统面向对象编程中的诸多概念,比如继承.虚函数和构造函数 C. go ...

  2. JVM(十二):方法调用

    JVM(十二):方法调用 在 JVM(七):JVM内存结构 中,我们说到了方法执行在何种内存结构上执行:Java 方法活动在虚拟机栈中的栈帧上,栈帧的具体结构在内存结构中已经详细讲解过了,下面就让我们 ...

  3. C++的精度控制

    #include <iostream> #include <iomanip> using namespace std; int main( void ) { const dou ...

  4. CentOS重置MySQL root密码的方法

    1.修改MySQL的登录设置: # vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] skip-grant-tables  ...

  5. Jedis操作Redis--Hash类型

    /** * Hash(哈希表) * HDEL,HEXISTS,HGET,HGETALL,HINCRBY,HINCRBYFLOAT,HKEYS,HLEN,HMGET,HMSET, HSET,HSETNX ...

  6. lightoj 1044 - Palindrome Partitioning(需要优化的区间dp)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1044 题意:求给出的字符串最少能分成多少串回文串. 一般会想到用区间dp暴力3个for ...

  7. SqlServer数据库技巧

    1.数值转换失败提供默认值 , )) end

  8. 基于SpringBoot从零构建博客网站 - 开发文章详情页面

    文章详情页面是博客系统中最为重要的页面,登录用户与游客都可以浏览文章详情页面,只不过只有登录用户才能进行其它的一些操作,比如评论.点赞和收藏等等. 本次的开发任务只是将文章详情页面展示出来,至于一些收 ...

  9. JS-特效 ~ 03. 楼层跳跃、事件对象event的获取与使用、event的主要内容、screenX、pageX、clientX的区别、放大镜、模拟滚动条

    楼层跳跃 100%子盒子会继承父盒子的宽高.父盒子继承body宽高.Body继承html的宽高. 盒子属性:auto:适应盒子自身的宽度或者高度.(对自己负责) 盒子属性:100%:适应盒子父盒子的宽 ...

  10. 单细胞转录组测序技术(scRNA-seq)及细胞分离技术分类汇总

    单细胞测序流程(http://learn.gencore.bio.nyu.edu) 在过去的十多年里,高通量测序技术被广泛应用于生物和医学的各种领域,极大促进了相关的研究和应用.其中转录组测序(RNA ...