一 概述
本文主要介绍jenkins,sonarQube的安装与集成,代码分析有sonarQUbe和sonar-runner构建,或者在maven项目情况下可以sonarQbude和maven的构建。介绍jenkins的编译打包部署,代码检查。最后集成jenkins
二 预装软件
- 软件名称 平台 备注
- jdk1.8.0_60 Win10 操作系统
- apache-tomcat-8.0.20 Win10 Tomcat容器
- Jenkins Win10 端口 8088
- sonarqube-6.2 Win10 端口 9090
- sonar-runner-2.6.1 Win10
- mysql 5.6 Win10
- nexus-3.2.0-01 Linux Maven私有服务
三 配置环境变量
配置各软件的环境变量方法不展开描述。除nexus外,其余都在安装在本地。
四 sonarQube安装
4.1 将sonaeQbude解压到本地。
修改sonar.properties文件.数据库使用本地的mysql,创建一个名为sonar的库。
当sonarQube启动时候会自动创建表。
建库语句
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
sonar.jdbc.username=root sonar.jdbc.password=11111 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
新的sonarQbude的表相对旧版来说有了新的改动,升级时候需要把旧的表删除。否则会报以下错。
exception caught on transport layer [[id: 0xc7fbf08e, /127.0.0.1:55381 => /127.0.0.1:9001]], closing connection java.io.IOException: 远程主机强迫关闭了一个现有的连接。
4.2 启动sonarQube
运行“StartSonar.bat”, 访问9000端口,sonar默认自带了jetty服务器。
默认用户名密码 admin、admin。一些设置和菜单只有在登陆之后才能看到。
因个人9000端口有其他用途,将端口改为9090.
sonar.web.port=9090
4.3汉化sonarQube
官网地址 http://docs.sonarqube.org/display/PLUG/Plugin+Library
将sonar-l10n-zh-plugin-1.13.jar放置于sonarqube-6.2\extensions\plugins下。重启sonarQube。
soanrQube有一些需要到的插件,用于代码分析。
插件介绍
插件的下载地址为:http://docs.codehaus.org/display/SONAR/Plugin+Library
将下载后的插件上传到${SONAR_HOME}extensions\plugins目录下,重新启动sonar。
sonar默认集成了Java Ecosystem插件,该插件是一组插件的合集
(1)Java [sonar-java-plugin]:java源代码解析,计算指标等
(2)Squid [sonar-squid-java-plugin]:检查违反Sonar定义规则的代码
(3)Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle检查违反统一代码编写风格的代码
(4)FindBugs [sonar-findbugs-plugin]:使用FindBugs检查违反规则的缺陷代码
(5)PMD [sonar-pmd-plugin]:使用pmd检查违反规则的代码
(6)Surefire [sonar-surefire-plugin]:使用Surefire执行单元测试
(7)Cobertura [sonar-cobertura-plugin]:使用Cobertura获取代码覆盖率
(8)JaCoCo [sonar-jacoco-plugin]:使用JaCOCO获取代码覆盖率
常用的插件:
(1)JavaScript代码检查:http://docs.codehaus.org/display/SONAR/JavaScript+Plugin
(2)Python代码检查:http://docs.codehaus.org/display/SONAR/Python+Plugin
(3)Web页面检查(HTML、JSP、JSF、Ruby、PHP等):http://docs.codehaus.org/display/SONAR/Web+Plugin
(4)xml文件检查:http://docs.codehaus.org/display/SONAR/XML+Plugin
(5)scm源码库统计分析:http://docs.codehaus.org/display/SONAR/SCM+Stats+Plugin
(6)文件度量:http://docs.codehaus.org/display/SONAR/Tab+Metrics+Plugin
(7)中文语言包:http://docs.codehaus.org/display/SONAR/Chinese+Pack
(8)时间表显示度量结果:http://docs.codehaus.org/display/SONAR/Timeline+Plugin
(9)度量结果演进图:http://docs.codehaus.org/display/SONAR/Motion+Chart+Plugin
(b)插件配置示例(本段内容来自http://www.ibm.com/developerworks/cn/java/j-lo-sonar/
五 sonar-runner安装
5.1 修改sonar-runnerc下的conf的sonar-scanner.properties配置文件
sonar.host.url=http://localhost:9090
sonar.jdbc.username=root
sonar.jdbc.password=11111
sonar.jdbc.url=jdbc:mysql://10.10.5.64:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
5.2 在项目的根目录下添加文件sonar-project.properties
1 单一个项目
sonar.projectKey=pljj
sonar.projectName=pljj
sonar.projectVersion=1.0-SNAPSHOT
sonar.sources=src/main/java
sonar.tests=src/test/java
sonar.binaries=target/classes
sonar.language=java
2 maven多模块
sonar.projectKey=pljj
sonar.projectName=pljj
sonar.projectVersion=1.0
sonar.sources=.
sonar.language=java
sonar.sourceEncoding=UTF-8
或者
sonar.projectKey=com.pljj-job
sonar.projectName=elastic-job
sonar.projectVersion=1.1.0
# Set modules IDs
sonar.modules=pljj-core,pljj-console,pljj-spring
# Modules inherit properties set at parent level
sonar.sources=src/main/java
sonar.tests=src/test/java
sonar.java.binaries=target
sonar.language=java
5.3,运行sonar-runner
在“开始”》“运行”中输入cmd切换的项目更目录 输入“sonar-runner”
以下为成功目录
登陆http://localhost:9090/ 查看代码扫描结果,帐号密码admin/admin
六 mave安装和sonarQbude配合使用
6.1在maven官网下载maven
http://maven.apache.org/download.cgi
打开cmd窗口数据 mvn –v 查看maven