Jenkins集成sonarqube

  • 1.jenkins集成sonarqube
  • 2.jenkins以maven的方式集成sonarqube scanner
  • 报错1
  • 报错2


1.jenkins集成sonarqube

1.在jenkins插件管理中安装sonarqube scanner

windows sonarqube 运行java项目 sonarqube jenkins_Java

2.jenkins要知道sonarqube服务端是谁,需要配置(系统管理–系统配置–sonarqube–添加一个即可)

windows sonarqube 运行java项目 sonarqube jenkins_Java_02

3.添加一个token,此处的token就是之前在sonarqube上生成的令牌

windows sonarqube 运行java项目 sonarqube jenkins_jenkins_03

windows sonarqube 运行java项目 sonarqube jenkins_运维_04

4.jenkins服务器上需要先安装sonar-scanner,然后在全局工具管理中配制sonarqube scanner

windows sonarqube 运行java项目 sonarqube jenkins_maven_05

5.Jenkins在项目中引用sonarqube scanner
下面以基于tags的方式发布为例,在项目中引入sonarqube

sonar.projectName=${JOB_NAME} 	#项目在sonarqube上的显示名称
sonar.projectKey=${JOB_NAME} 	#项目的唯一标识,不能重复
sonar.sources=. 	#扫描哪个项目的源码

windows sonarqube 运行java项目 sonarqube jenkins_运维_06

6.然后就会看到集成的sonarqube

windows sonarqube 运行java项目 sonarqube jenkins_运维_07

7.然后我们重新提交一次代码,再次进行构建

windows sonarqube 运行java项目 sonarqube jenkins_Java_08

8.提示成功

windows sonarqube 运行java项目 sonarqube jenkins_Jenkins_09

9.可以点击链接,然后查看扫描的结果

windows sonarqube 运行java项目 sonarqube jenkins_maven_10


windows sonarqube 运行java项目 sonarqube jenkins_Jenkins_11


2.jenkins以maven的方式集成sonarqube scanner

1.jenkins所依赖的jdk版本与sonarqube中所使用的的jdk版本,改成一致的

windows sonarqube 运行java项目 sonarqube jenkins_运维_12

2.通过调用maven的方式

windows sonarqube 运行java项目 sonarqube jenkins_运维_13

clean
verify
sonar:sonar
-Dsonar.host.url=http://192.168xx.xxx:9000
-Dsonar.login=#填写自行生成的token

windows sonarqube 运行java项目 sonarqube jenkins_运维_14

3.开始构建

windows sonarqube 运行java项目 sonarqube jenkins_jenkins_15

4.构建成功

windows sonarqube 运行java项目 sonarqube jenkins_运维_16

5.查看分析结果

windows sonarqube 运行java项目 sonarqube jenkins_Java_17


报错1

如果在构建过程中遇到以下报错

windows sonarqube 运行java项目 sonarqube jenkins_Java_18

1.检查token是否正确,可以尝试重新添加一次

windows sonarqube 运行java项目 sonarqube jenkins_jenkins_19


windows sonarqube 运行java项目 sonarqube jenkins_Jenkins_20

2.检查Jenkins全局工具管理中配制sonarqube scanner的路径是否正确

windows sonarqube 运行java项目 sonarqube jenkins_Java_21


报错2

如果在构建过程中遇到以下报错

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar (default-cli) on project hello-world-war: 
Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar failed: 
An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar: 
java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more
 recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.codehaus.mojo:sonar-maven-plugin:3.9.1.2184
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy

一般原因是jdk版本的问题,你的jenkins所依赖的jdk版本与sonarqube使用的jdk版本冲突造成的,改成一致的版本就好了