最近对SonarQube进行了一点学习,从网络上查询了很多的文章,然后自己又进行了各种实践,终于成功的实现了代码扫描。
SonarQube的安装
SonarQube下载
首先我们需要去SonarQube的官网进行下载,我这里下载的是最新的版本8.0,当然自己按照自己的喜好进行版本的下载即可:
安装嘛根本就没有了,直接找个位置解压缩就可以了。
SonarQube运行
找到自己的系统版本运行对应的StartSonar.bat:
运行界面如下:
这时可以看一下http://localhost:9000这个地址页面了:
当然我之前运行过了,所以可能和你们显示的不太一样,不过没关系,能显示信息就可以了:
然后我们可以登录,用户名和密码就是admin,admin.
如果你对英语不是很敏感的话,那就可以用到接下来的汉化教程了:
按照步骤进行操作:
安装完毕后点击重启即可:
等一会会让你再次登录,然后就变成汉语啦:
还有就是需要特别注意以下几个点:
- 不知道从那个版本开始SonarQube就不支持mysql了,这个比较坑,不过还有oracle和postgresql可以用,我这边用的都是postgresql,毕竟免费的。
- SonarQube对jdk也是有要求的,要求jdk11+,我这边安装的就是jdk11完美运行,别的没有试过。
SonarQube重启
在window没有办法通过命令进行SonarQube的停止或者重启,只能粗暴的停止进程,然后再次运行StartSonar.bat:
SonarQube的配置
sonar配置
找到SonarQube里面config文件夹下面的sonar.properties配置文件,进行数据库信息的配置:
sonar.jdbc.username=用户名
sonar.jdbc.password=密码
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
maven配置
因为我这里是扫描的maven工程,所以需要在maven配置文件中进行相关的设置:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:postgresql://localhost:5432/sonarqube
</sonar.jdbc.url>
<sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>用户名</sonar.jdbc.username>
<sonar.jdbc.password>密码</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
</profiles>
配置完毕之后需要根据之前说的那样将SonarQube重启。
maven工程扫描
扫描maven工程
上面已经配置好了maven环境变量,然后在需要扫描的项目路径下执行以下maven命令,即可扫描项目代码:
mvn clean verify sonar:sonar
会执行很多东西,等到执行完毕之后就可以去http://127.0.0.1:9000/sonar查看了:
好了就是这样了。。。
IDEA里面集成sonar
安装SonarLint插件即可:
在IDEA的左下角就会出现这个了,可以查看代码的问题
说实话,感觉没有阿里巴巴的代码扫描好用,个人见解。。。
关于SonarQube的升级
刚才SonarQube发布了8.0版本,我之前是7.9.1版本,本着能用就用最新的理念。我就下载并替换了8.0版本,可是启动的时候出现了:
SonarQube is under maintenance. Please check back later.
Whilst waiting, you might want to check new plugins to extend the current functionality.
If you are an administrator and have no idea why this message is showing, you should read the upgrade guide
这里表示很懵B呀,于是百度到升级方法就是:
http://127.0.0.1:9000/setup 按照提示更新下SonarQube就可以啦,当然地址肯定要是你自己的地址了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。