Jenkins集成sonarqube
1.jenkins集成sonarqube
1.在jenkins插件管理中安装sonarqube scanner
2.jenkins要知道sonarqube服务端是谁,需要配置(系统管理–系统配置–sonarqube–添加一个即可)
3.添加一个token,此处的token就是之前在sonarqube上生成的令牌
4.jenkins服务器上需要先安装sonar-scanner,然后在全局工具管理中配制sonarqube scanner
5.Jenkins在项目中引用sonarqube scanner
下面以基于tags的方式发布为例,在项目中引入sonarqube
sonar.projectName=${JOB_NAME} #项目在sonarqube上的显示名称
sonar.projectKey=${JOB_NAME} #项目的唯一标识,不能重复
sonar.sources=. #扫描哪个项目的源码
6.然后就会看到集成的sonarqube
7.然后我们重新提交一次代码,再次进行构建
8.提示成功
9.可以点击链接,然后查看扫描的结果
2.jenkins以maven的方式集成sonarqube scanner
1.jenkins所依赖的jdk版本与sonarqube中所使用的的jdk版本,改成一致的
2.通过调用maven的方式
clean
verify
sonar:sonar
-Dsonar.host.url=http://192.168xx.xxx:9000
-Dsonar.login=#填写自行生成的token
3.开始构建
4.构建成功
5.查看分析结果
报错1
如果在构建过程中遇到以下报错
1.检查token是否正确,可以尝试重新添加一次
2.检查Jenkins全局工具管理中配制sonarqube scanner的路径是否正确
报错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版本冲突造成的,改成一致的版本就好了