用SonarQube和SonarLint分析maven项目中的Java代码坏味道
Posted Dream_it_possible!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SonarQube和SonarLint分析maven项目中的Java代码坏味道相关的知识,希望对你有一定的参考价值。
目录
一、下载SonarQube
版本: 7.7 , 适合JDK1.8
下载地址: https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
官网地址:
点击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 请求重定向漏洞