项目中需要使用代码扫描工具,扫描潜在bug和不规范写法,可以用开源工具SonarQube+IDEA插件SonarLint
1、下载SonarQube 地址如下,本文下载的版本为9.9.6
https://www.sonarsource.com/products/sonarqube/downloads/
下载后解压,第一步修改配置文件,是conf文件夹下的sonar.properties,不然无法使用。配置文件中主要就是要修改postgresql,因为SonaQube需要利用数据库来存放扫描结果,而且高版本的SonaQube是不支持mysql的。
sonar.jdbc.username=postgres
sonar.jdbc.password=postgres
sonar.jdbc.url=jdbc:postgresql://ip:5432/sonar
其他的,作者还改了JVM配置
sonar.web.javaOpts=-Xmx2048m -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
端口根据自己需要修改,默认9000,作者改成了9100
sonar.web.port=9100
还有比较重要的一点是,我用的这个版本的SonaQube必须要用JDK17及以上,8和11试过了都不行,这个比较坑,因为作者现在还是用的8,导致我需要把自己的开发环境都升级到17,而且,从11开始,JRE需要自己生成,这个不在这讨论,可以自行查阅17配置环境变量方法。
到这里,SonarQube就可以启动了,直接双击\bin\windows-x86-64文件夹下的StartSonar.bat就可以了,然后访问你的ip+端口就能访问到页面,默认用户名密码都是admin,首次登录要修改。
2、IDEA中安装插件SonaLint,这个没难度,不说了。
安装完毕提示重启,然后在Settings下的Tools里面会多个SonarLint的菜单,点开后按要求配置好自己的SonaQube地址
自行在SonarQube中创建完项目后,增加到自己的设置中
3、那么,要怎么进行代码扫描,并且把扫描后的结果同步到SonaQube中呢?
首先,如果你只是想在IDEA中扫描的话,可以直接在项目中右击选择分析,分析结果会出现在工具栏中,照着看然后修改就可以了。
但是我们一般都想在页面上看结果,那么需要在pom文件中配置两个内容,第一个是插件
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.9.1.2184</version>
</plugin>
第二个是一些配置内容,就是你的服务端地址和用户名密码
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://localhost:9100</sonar.host.url>
<sonar.login>admin</sonar.login>
<sonar.password>admin12345</sonar.password>
</properties>
</profile>
</profiles>
配置完成后,先将项目打包
打包完成后,在插件中找到sonar,直接双击,等待完成即可
这样,你的Sonar页面上就会多出来一个结果