refer to:
https://www.jenkins.io/doc/pipeline/steps/sonar/
https://plugins.jenkins.io/sonar/
(本文用到的maven项目的地址: https://github.com/yates0x00/test_jenkins_sonarqube_maven )
jenkins官方文档直接让我们去看sonar官方文档:
可以看到,这里针对不同的语言,有不同的选项 / plugin:
直接忽略下图红框的链接,
进入到jenkins -> 系统管理 -> plugin管理 -> available plugins:
安装之:
dashboard -> 系统管理 -> system 才能看到:
需要安装sonar cube server.
太神奇了。这里又打了一遍。。。已经2次丢失内容了。
内容略,记得用JDK17 安装即可。
使用 ubuntu的alternative就可以自由切换。
update-java-alternatives --list
sudo update-java-alternatives --set /usr/lib/jvm/java-1.17.0-openjdk-amd64
然后记录好该 JDK 的HOME:
jenkins中设置好该JDK:
然后在对应的jenkins项目中,就可以配置sonarqube了,指定好对应的JDK17:
然后就可以看到 在jenkins项目下,sonarqube的图标出来了。
然后点击一下 build 试试:
上图报错了,说明 可以走到sonarqube 审计代码这一步了。只是由于sonarqube没有启动,所以这里报错了。 不要紧
手动启动sonarqube:
再来一次,又失败了,如下图:
分析了下,可以看到网页,JDK版本没错,所以说明jenkins + sonarqube都分别跑起来了。
直接访问 9000端口(sonar web页面)可以看到 项目都有了。
联想到jenkins 只能看到login之前的loading, 估计是没有权限。回头查一下文档,原来是需要 user key
所以这样的设置:(如下图)
得到了这个key:
然后,我们copy该key, 进入到jenkins中进行设置,如下图:
全局配置中,找到这个sonarqube servers:
点击这个“添加”,会出现下面2个图片的弹窗(实际上是一个大弹窗)
添加好后,再回到 刚才的下拉单,就可以看到了:
保存后,再运行:
发现又报错了:
查看文档,文档中没写,查看jenkins, 发现了这个form, 需要填写:
又报错了?
继续修改配置:
也就是,填写成这样:
https://stackoverflow.com/a/63930274/445908
sonar.projectKey=my:testwithjenkinsandsonar
sonar.projectName=Test Jenkins With Sonar
sonar.projectVersion=1.0
sonar.sources=src/main/java
sonar.exclusions=target/classes
点击可以查看报告:
http://54.178.99.67:9000/dashboard?id=my%3Atestwithjenkinsandsonar
这里可以查看API形式的报告,方便整理:(邮件,报警啥的)
http://54.178.xx99.67:9000/api/ce/task?id=AYiK9TwuIm-UnC0p2Pa8
对应的java项目看起来是这样::
我们把代码修改一下,弄的危险一些:
可以看到,jenkins还是会正常的成功构建的:
我们进入到sonarqube的web GUI: