使用SonarQube分析项目代码

在上一篇文章中我们成功部署了SonarQube,这篇文章我将简单介绍sonar如何扫描IDEA中的项目代码,并在SonarQube上生成对应的分析报告。

一、使用SonarLint插件

首先是SonarLint插件,网上资料很多,这里不多介绍,安装如下:

File -> Settings...

安装,重新启动IDEA即可进行使用

SonarLint也可以单独进行代码分析,操作方式简单,这里不多提

SonarLint可以直接连接SonarQube,方式如下:

File -> Settings...

点击右边的 + 号

 

选择右边的 sonarQube,下面的地址选本地 sonarQube 的地址 ,然后点Next

认证方式这里选择的账号密码,同上一节一样,默认账号密码均为 admin 

完成后我们这个名为 local(名字随意) 的连接就配置好了,我们可以直接通过连接更新SonarQube上的信息等

至此,IDEA 插件 SonarLint 和 SonarQube 关联配置完成

然后我们打开之前的SonarQube页面 --> + 号  --> 新建新项目

创建一个新的项目标识

然后回到IDEA,打开下面的SonarLint,点击这个工具按钮

勾选上  Bind project to SonarQube /SonarCloud 按钮,Connection 里面选择刚才配置好的local,如果连接没有问题,我们可以在下面选择到我们在SonarQube上新建的项目标识,一并选上,然后Ok。

如果都没有问题的话,在IDEA上执行代码分析,就能在SonarQube上产生对应的分析报告。

但是这种方式对插件版本兼容性比较严格,SonarLint的版本也一直在更新,手动调整SonarLint版本也比较繁琐,于是这里提供了另外一种扫描思路。

二、使用maven插件

这种扫描思路实际上依靠的是一个叫做 SonarScanner 的工具,它其实可以直接进行配置使用,但是操作略显复杂,所以我们这里就不讲怎么使用了。

在官方文档里面也有写:

建议将 SonarScanner for Maven 作为 Maven 项目的默认扫描器。

SonarQube官方文档

即直接使用maven版本的SonarScanner对项目进行扫描,而无需进行多于的配置,网上很多SonarQube教程里面都要去Mave文件下的setting里面改配置或者去项目的pom文件里面加东西,其实官方文档也说了,可以直接使用。下面我们看一下怎么实现:

版本要求
  • Maven 3.2.5+ 版本
  • 至少 SonarQube Server 实例支持的最低 Java 版本

 这里首先要特别注意一点,官方文档也有写:

maven能进行扫描靠的就是这个 sonar-maven-plugin 工具,如果我们在项目的pom文件里面没有指定版本的话,它就会用最新的版本。但是 sonar-maven-plugin 从 4.0.x 开始使用jdk11进行编译,如果按照我们之间使用的jdk8环境的话,这里一定会出错,所以,我们需要按照官方给的指定

 sonar-maven-plugin 版本的写法

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:<version>:sonar

 下面给出一个案例:

还是在我们搭建的SonarQube界面新建一个项目,创建标识,生成Token

然后一步一步点,最后它会生成一段命令,并叫你去你的项目目录下执行

这里注意:请一定去掉其中所有的 \ 符号,不然会执行失败! 

然后,别忘了我们前面说的指定版本的问题,所以我们修改一下,最后输出的命令如下:

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar -Dsonar.projectKey=test1219 -Dsonar.host.url=http://localhost:9000 -Dsonar.login=45c458bacd18c6bd5436115c9790782b6b52fe33

在IDEA项目的终端下面执行:

如果操作无误,版本也没有出现问题,最后会执行成功

 

这个时候我们回到我们的SonarQube界面,可以看见报告了

 

 

完事。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值