全部软件及手动插件版本
名称
版本
备注
Jenkins
2.32.1
官网下载
Jenkins的sonar插件
2.4(自己下载打包)
https://github.com/SonarSource/jenkins-sonar-plugin/releases/tag/2.4
Sonar
5.6.3
官网下载
Sonar-scanner
2.6.1
CSDN下载
Sonar汉化插件
1.8(自己下载打包)
https://github.com/SonarQubeCommunity/sonar-l10n-zh
Sonar的cobertura
1.9(自己下载打包)
https://github.com/galexandre/sonar-cobertura/tree/version-1.9
Jenkins安装和配置
根据下载的jenkins,可以直接运行安装或放入web容器下启动安装。本次安装中,下载了jenkins的war包并放入tomcat中进行安装。其他配置如:java,git和maven的相关配置不再细说。
安装后需要下载的插件:
1、 git parameter使用git可以选择分支的插件
2、 cobertura plugin 单元测试覆盖率使用的插件
3、 手动安装插件,在插件管理的高级中。下载低版本的sonar,使用maven打包后上传
配置sonar相关插件:
1、 系统管理---> 系统设置中--->配置SonarQube Server
2、 系统管理---> Global Tool Configuration--->SonarQube Scanner
Jenkins创建项目,配置如下:
1、配置参数化构建过程,添加git parameter,配置可选择分支。
2、版本管理选择Git,配置对应的下载路径及账号信息。
3、步骤中添加Invoke top-level Maven targets配置maven,选择maven版本。添加命令
clean package -Dmaven.test.skip=true cobertura:cobertura
,并配置pom.xml文档路径。
4、步骤中,添加Execute SonarQube Scanner,选择JDK版本,并在Analysis properties中添加信息:
sonar.projectKey=com:JunitTest //随意命名,不能和jenkins中其他项目同名
sonar.projectName=JunitTest //项目名称
sonar.projectVersion=1.0
sonar.sources=src
sonar.sourceEncoding=UTF-8
sonar.language=java
Maven配置时,需要单元测试覆盖率,则去掉_-Dmaven.test.skip=true__。_
SONAR安装配置
创建sonar的mysql 数据库,并添加用户赋予权限:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
修改配置文件conf/sonar.properties,去掉对应的数据配置注释,根据实际情况修改数据库连接信息。
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=
注意mysql数据的版本,sonar5.6后需要mysql的5.6或更高版本。运行后会出现warning信息:Establishing SSL connection without server's identity verification is not recommended. 这时将配置中的url添加useSSL=true或useSSL=false。
Sonar插件放在项目下extensions/plugins下,重启Sonar即可自动安装使用。
配置SONAR-SCANNER,打开conf中的配置文件sonar-scanner.properties,去掉部分相关配置的注释配置相关的信息,如下:
sonar.host.url=http://localhost:9000
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=
被测试项目配置
在maven的pom.xml中添加插件
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<formats>
<format>xml</format>
</formats>
</configuration>
</plugin>