1. 下载
可以有很多种方式使用sonarqube分析,这里列举几种:
- 使用Maven命令分析
- 使用IDEA插件
- 使用Sonarqube Scanner扫描工具
博主这里介绍第一种方式:
下载sonarqube-7.7
链接:https://pan.baidu.com/s/1NDY145lVGKWJOQnL3brHiw
提取码:pt4h
博主使用环境是Windows,所以:
解压后,运行\bin\windows-x86-64\StartSonar.bat
浏览器访问http://localhost:9000
能够成功访问页面即安装成功:右侧有登录按键,默认用户admin,密码admin
2. 配置MySQL数据库
注意再sonarqube-7.7下,MySQL的版本为5.6<=x<8.0。
- 使用root用户登录数据库,创建数据库和新用户:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
flush privileges;
- 设置sonarqube配置文件
sonarqube-7.7\conf\sonar.properties
去掉前面的# 号,写上用户名和密码:
- 重启sonarqube
这一步博主不确定是否关闭其中一个还是所有都关闭,才是真正的关闭了sonarqube,你可以挨个尝试关闭:
第一个:ctrl + c 关闭
第二个:sonarqube的界面有一个重启选项,但是博主点击重启会卡死,你可以尝试
第三个:任务管理器后台服务,结束这些服务即可
注意:
配置了MySQL后,可能下一次的启动会出现这样的情况,并且卡在这里,访问http://localhost:9000 提示需要升级数据库:
解决办法:
访问:http://localhost:9000/setup,按照提示升级即可,然后按照上面的步骤重启sonarqube。
同时,如果连接顺利你可以在数据库看到相关内容:
3. 配置Maven和项目
- 在你Maven的安装路径下,settings.xml文件中添加如下内容:
注意添加的位置(因为博主有配置其他内容,行数可能不准确,注意找到对应为止):
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://localhost:9000
</sonar.host.url>
</properties>
</profile>
- 首先你需要有一个Maven项目(这里就不演示了,并且确保里面有运行代码),在pom.xml 中添加内容:
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
</plugins>
</build>
项目根目录或者resources目录创建sonar-project.properties(不过感觉没起作用啊),内容如下:
sonar-project.properties
# must be unique in a given SonarQube instance
# 改为你自己的
sonar.projectKey=jindouyun
# --- optional properties ---
# defaults to project key
# 改为你自己的
sonar.projectName=jindouyun
# defaults to 'not provided'
#sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Defaults to .
sonar.sources=src
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
4. Maven命令运行
在项目路径下运行:
有两条命令,直接运行第二天命令即可出结果,但是无法分析出测试代码覆盖率,所以需要分别执行两条命令:
不过,博主这里用的是一个成品项目,执行第一条命令会卡死。。。。
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true
mvn sonar:sonar
执行第二条命令构建成功如下,访问黄框内的链接:
你可以看到,其他信息已经分析出来,但是单元测试并没有分析出来:
若有错误,请指正!
参考:
官网:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/
https://blog.csdn.net/weixin_40861707/article/details/82117232#commentBox
https://www.jianshu.com/p/e384595d0b14