用SonarQube和SonarLint分析maven项目中的Java代码坏味道

Posted Dream_it_possible!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SonarQube和SonarLint分析maven项目中的Java代码坏味道相关的知识,希望对你有一定的参考价值。

目录

一、下载SonarQube

配置sonar数据源

二、编译maven项目上传报告到Sonar

创建token

三、SonarLint插件分析代码坏味道


一、下载SonarQube

版本: 7.7 , 适合JDK1.8

       下载地址: https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip

官网地址:

Download | SonarQube

点击show all versions即可查看所有版本: 

下载完后,放入到本地: D:\\Program Files\\sonarqube-7.7

编写startSonar.bat文件, 放入到windows路径: 

C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp

如果你想开机自启的话就把如下脚本放入到文件里:

cd D:\\Program Files\\sonarqube-7.7\\bin\\windows-x86-64
d:
call StartSonar.bat
pause

编写sonar配置文件: D:\\Program Files\\sonarqube-7.7\\conf\\sonar.properties

主要修改几个核心配置,默认暴露的HTTP端口为9000, 所以启动时保证端口不被占用。

配置sonar数据源

        因为sonarqueb会将报告落库,然后展示到页面上来,所以一定要配置Sonar的数据源,需要一个名为sonar的数据库,修改sonar.properties文件连接mysql数据源, 要确保创建了一个名为sonar的数据库,否则Server有可能会出现创建出错:

# 数据库用户

sonar.jdbc.username=root

# 数据库密码
sonar.jdbc.password=root

#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092

#----- DEPRECATED 
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

 启动服务器, 切换到: D:\\Program Files\\sonarqube-7.7\\bin\\windows-x86-64

 出现sonarqube is up 的字样表示启动成功!

访问 localhost:9000, 进入到sonar首页表示服务器启动成功。

 默认的用户名和密码分别是admin, admin。

二、编译maven项目上传报告到Sonar

创建token

        进入到管理页面的security选项卡,输入一个tokenName, 点击generate, 会自动生成一个token串,此token用来访问sonar的凭据。 

 

 将生成的token用-Dsonar.login的参数形式写入maven命令:

sonar:sonar -Dsonar.projectKey=base-service -Dsonar.host.url=http://localhost:9000 -Dsonar.login=51aa4d3b06c53fcf72ce3235eeca31e3940f9c7c

配置到idea的command  line 里:

 build成功后,会自动生成browse 的地址:

Sonarqube提供了一套代码的规范标准,并不一定是最完美的,但是可以做为参考,bugs是需要修复的, Vulnerabilities 属于比较严重的问题要及时解决,否则系统的安全性可能会出现问题, code smell就是代码的坏味道,可以慢慢修复掉。

Coverage表示代码的覆盖率,可以通过写unit tests 增加此数值。 

点击issue页面,还能看到问题的级别:

三、SonarLint插件分析代码坏味道

SonarLint下载地址:

SonarLint for JetBrains IDE | Code Quality & Security Extension

版本:sonarlint-intellij-6.4.3.42541.zip

将下载的插件放入的到idea里 

重新启动idea, 下面的工具栏里就多了一个sonarLit :

sonarlint也可以对单个文件和整个项目进行分析,只需要右键选中,然后点击运行即可;

以上是关于用SonarQube和SonarLint分析maven项目中的Java代码坏味道的主要内容,如果未能解决你的问题,请参考以下文章

与 SonarLint Intellij 集成后从 SonarQube 生成代码分析报告

使用 SonarLint 插件和 SonarQube 服务器未检测到 HTTP 请求重定向漏洞

sonarLint和sonarQube

使用 sonarlint-cli 进行 C++ 分析

AndroidStudio SonarLint和SonarQube的使用

AndroidStudio SonarLint和SonarQube的使用