SonarQube 7.8安装与应用集成maven,jdk1.8,mysql、SonarScanner和SonarQube for IDE的闭环使用、文档下载……
引言
这几天公司要求对代码输出检测报告,之前没做过这方面的工作于是上网查找了大量资料,大多鱼龙混杂,为了节约后来读者时间,本人在此特写一篇详细的博文,手把手引导大家安装和使用windows版SonarQube。
本人用的版本是SonarQube 7.8,因为公司项目是jdk1.8的版本开发,数据库用的mysql,SonarQube 7.8最后一个支持jdk1.8和mysql的版本,之后的版本至少需要jdk11,数据库则替换成了postgreSQL。详情大家可以上官网了解。
官网:http://sonarqube.org/
在这里查看历史版本,点击可下载,一般选择带LTA的稳定版本。
环境准备和下载
在官网没有找到SonarQube 7.8版本,给大家以下链接:
通过网盘分享的文件:SonarQube 7.8
链接: https://pan.baidu.com/s/1G3RI6gdhdI2FXGAlTtaXXA?pwd=5rib 提取码: 5rib
** 数据库:5.7 (8.0不支持)**
mysql驱动:下载mysql-connector-java-5.1.48.jar(下载地址同上)
环境变量确保是jdk1.8版本
安装步骤
1.解压
2.进入到sonarqube-7.8\conf中找到配置文件sonar.properties,配置数据库连接。在配置文件可以看到该版本对mysql的版本支持为MySQL >=5.6 && <8.0。
2.1 修改sonar.properties,配置mysql数据库(先在数据库里创建一个库:sonar)
修改配置文件(将如下内容添加至配置文件)
sonar.jdbc.username=你的用户名
sonar.jdbc.password=你的密码
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
2.2 在conf文件夹中打开wrapper.conf,适配java运行
3启动
到sonarqube-7.8\bin\windows-x86-64路径下启动StartSonar.bat即可开启服务。默认访问地址为http://localhost:9000,用户名/密码:admin/admin。
选择windows版
双击启动
出现如下界面,表示启动成功
访问localhost:9000
4创建项目
输入项目名称:(根据实际来,我这里是测试,所以随便写了个test)
创建token,这个token要复制下来记住,和你创建的项目要对应,后面要用到
项目创建成功后,如下样式
SonarScanner 使用
1.maven插件下载,版本一定要和SonarQube服务版本对齐,因为使用SonarQube7.8版本,所以我们下载对应3.7.0.1746版本。
在项目父工程的pom.xml文件中配置
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<!--支持java17-->
<!-- <version>3.9.1.2184</version>-->
<!--支持java8-->
<version>3.7.0.1746</version>
</plugin>
</plugins>
</build>
下载后maven工具中会出现sonar命令,添加配置后每次检视前运行该命令就行。
为了运行方便,我们将参数写入pom文件,后续每次在maven中运行sonar即可。
<properties>
<sonar.projectKey>test</sonar.projectKey>
<sonar.projectName>name</sonar.projectName>
<sonar.projectVersion>1.0</sonar.projectVersion>
<sonar.projectDescription>描述</sonar.projectDescription>
<sonar.host.url>http://localhost:9000</sonar.host.url>
<sonar.login>0f495c1d82f77cfc074d3c686d077e4e04529348</sonar.login>
<sonar.moduleKey>${project.artifactId}</sonar.moduleKey>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
必须:
sonar.projectKey:是SonarQube创建项目中对应的key。
sonar.host.url:是SonarQube的访问地址
sonar.login:是SonarQube创建项目中对应的token
非必须:
sonar.moduleKey:是在多模块的项目中给子模块定义唯一性,防止代码检视的时候运行错误或检测覆盖或检测遗漏。
sonar.projectName:项目名称
sonar.projectVersion:项目版本
sonar.projectDescription:项目描述
project.build.sourceEncoding:解决编码问题
project.reporting.outputEncoding:解决编码问题
java.version:指定JDK版本
运行sonar:sonar效果和SonarQube服务
SonarQube查询检测结果
SonarQube for IDE安装使用
下载
到IDEA的插件中心进行下载
配置完成后
安装后,视图
检查代码
代码视检情况
导出报告
SonarQube本身没有下载检测报告的功能,需要安sonar-pdf-plugin插件。
插件也需要对应SonarQube版本,我这里选择的是sonar-pdfreport-plugin-3.0.3.jar
下载地址见目录共享文件
链接: https://pan.baidu.com/s/1G3RI6gdhdI2FXGAlTtaXXA?pwd=5rib 提取码: 5rib
把下载好的插件放到Sonarqube安装目录的extensions/plugins目录下,重启Sonarqube服务即可。
插件上传并重启Sonarqube服务后,管理界面中就会出现PDF Report的界面,配置相应的Password和Username即可。(我配置的是admin/admin)
如果密码不能一个个输入,就用复制粘贴!
选择某个检测结果,点击下载即可
总结
本人在下载安装的过程中,遇到的问题是:
(1)修改wrapper.conf配置文件是没有加最后的java.exe导致SonarQube无法启动;
(2)在下载报告时一定要确保项目已经编译过,即产生了target包和.class的文件,否则,无法下载成功。操作参考下图:(第一步:跳过测试,因测试包很可能编译不通过)