jenkins增加sonarqube检查java代码

准备工作:

1、jenkins

jenkins的工作方法有两种,这里随意,哪种都可以,我是选择放在了tomcat里面,便于管理。

2、sonarqube6.7.7 LTS

这里说明一下为什么要选6.7.7这个版本,因为后来从7版本开始,好像就不支持MySQL了,只支持Oracle,PostgreSQL,MSSQL。之前的版本启动的时候又提示什么版本太旧,不是Long Team Support版,所以干脆就选择了6.7.7这个LTS版。

3、MySQL5.6

手上只有这个版本的包,又懒得去下载,就用这个了。

CentOS自带的Mariadb版本太低,SonarQube不支持,不然就用自带的了。

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER ‘sonar’ IDENTIFIED BY ‘sonarpassword’;
mysql> GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonarpassword’;
mysql> GRANT ALL ON sonar.* TO ‘sonar’@’localhost’ IDENTIFIED BY ‘sonarpassword’;
mysql> FLUSH PRIVILEGES;

sonar安装好后直接sonar.sh start就行了,这里不可以用root用户直接运行,新建个用户就行了。

记得在sonar的配置文件里把mysql的用户名密码填上.

sonar.jdbc.username=sonar
sonar.jdbc.password=sonarpassword
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

然后sonarqube里登陆,生成token,保存下来,jenkins里安装sonarqube-scanner插件,名称,服务器,登陆验证填好。

在项目里选择Add post-build step,

Analysis properties填上:

sonar.projectKey=apigateway
sonar.projectName=apigateway #这个可自定义,报告发送到sonarqube后,sonarqube将创建以此命名的project
sonar.language=java #表示分析java源代码
sonar.java.source=1.7 #表示jdk版本为1.7
sonar.sources=${WORKSPACE}/src/main/java #表示源代码的目录

我的jenkins在打包的时候提示500错误:

INFO: Analysis report generated in 9263ms, dir size=11 MB
INFO: Analysis reports compressed in 5699ms, zip size=4 MB
INFO: ————————————————————————
INFO: EXECUTION FAILURE
INFO: ————————————————————————
INFO: Total time: 6:28.455s
INFO: Final Memory: 29M/1274M
INFO: ————————————————————————
ERROR: Error during SonarQube Scanner execution
ERROR: Failed to upload report – 500: An error has occurred. Please contact your administrator
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

这里修改MySQL的max_allowed_packet就可以了,可以在my.cnf里修改,也可以在库里修改:

show VARIABLES like '%max_allowed_packet%';

set global max_allowed_packet=6*1024*1024

修改完成后要重启MySQL和SonarQube,当时就因为只重启了数据库没重启SonarQube,导致一直没有上传通过。

参考地址:

https://blog.csdn.net/flysqrlboy/article/details/80525727

https://www.cnblogs.com/cjsblog/p/10740840.html

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据