下载好sonarqube后,解压打开bin目录,启动相应OS目录下的StartSonar。
如本文演示使用的是win的64位系统,则打开E:\sonar\sonarqube-7.6\bin\windows-x86-64\StartSonar.bat
然后修改 sonarqube-7.6\conf\wrapper.conf
修改本地的javapath,注意后缀要配置为 \bin\java
将其中的 wrapper.java.command=C:\Users\JavaCoder\.jdks\corretto-1.8.0_312\bin\java
先使用管理员运行 InstallNTService.bat
然后使用管理员运行 StartNTService.bat
然后使用管理员运行 StartSonar.bat
然后访问 http://localhost:9000
千万千万不要在 sonar.properties 里使用//进行注释,我以为//也是注释呢,复制别人的网页上的内容,结果坑了我好几个小时。
修改 sonar.properties 文件,添加 MySQL 连接信息配置。
\sonarqube-7.6\conf\sonar.properties
sonar.jdbc.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.login=admin
sonar.password=admin
重启 StartSonar.bat
,再次访问 http://localhost:9000
,会稍微有点慢(大概需要 6 分钟),因为要初始化数据库信息。
访问地址进行登录,初始的账号密码是:admin/admin
,数据库有初始化的表信息。
登陆进去之后进行汉化
下载对应自己版本的汉化包
查看适配 sonarqube 的汉化版本页面
github 下载 jar 包页面
将下载的汉化 jar 包,复制到 sonarqube-7.6\extensions\plugins 目录下,
任务管理器-详细信息,kill 掉所有 Java 进程,重启 StartSonar.bat
登录进后创建一个项目
然后设置名字,然后生成一个令牌
然后选择 Java,然后选择 maven
然后在项目中使用命令进行测试:
mvn sonar:sonar -Dsonar.projectKey=MerryChristmas -Dmaven.test.failure.ignore=true -Dsonar.host.url=http://localhost:9000 -Dsonar.login=24cafddfb012aa43587566df238a49ee5baffe2b
分析完成后会出现如此提示:
ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=MerryChristmas
浏览器打开就可查看分析结果,但此时跑出来的分析结果是没有运行单元测试的的
需要在 pom 加上这些配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<configuration >
<destFile>${project.build.directory}/jacoco.exec</destFile>
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
<includes>
<include>**/controller/**</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
然后需要先执行
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true
执行完后会出现 jacoco.exec,并且此时已经可以查看 target/site/jacoco/index.html
不过是不容易看懂的报告,需要用 sonar 优化显示
使用 sonar 优化测试报告(24cafddfb012aa43587566df238a49ee5baffe2b 就是之前创建的令牌):
mvn sonar:sonar -Dsonar.projectKey=MerryChristmas -Dmaven.test.failure.ignore=true -Dsonar.host.url=http://localhost:9000 -Dsonar.login=24cafddfb012aa43587566df238a49ee5baffe2b
然后此时就发现测试类已经可以在 sonar 中出现了!