需求:代码覆盖率
1.起先的目的是为了看代码覆盖率 实践的工具是jacoco.实践用的是命令行的方式
2.后又了解到sonar 可以做代码质量分析 可以更进一层的分析代码
----------------------------------------------------实践步骤-----------------------------------------------------------------
1.java环境准备 1.8
2.下载SonarQube安装包-解压即可,官网下载地址https://www.sonarqube.org/downloads/
3.MySql数据库,新建一个数据库sonar create database sonar;
4.SonarQube安装目录E:sonarqube-7.0sonarqube-7.0confsonar.properties配置文件
#----- MySQL 5.6 or greater
# 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
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
5.点击执行E:sonarqube-7.0sonarqube-7.0inwindows-x86-64StartSonar.bat,打开http://localhost:9000,如果显示sonar主页,则sonar安装成功。
6.sonar主页,点击配置-应该市场-搜索 下载JAVA相关的:Checkstyle、Findbugs、PMD 下载完后重启
7.汉化sonar 搜索chinese Pack
8.下载sonar-scanner-解压即可:(这个工具是对源码进行扫描,并将结果保存到数据库以便用上面的sonarqube进行分析)
下载地址: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
9. sonar-scanner配置文件修改:
修改配置文件E:sonarqube-7.0sonar-scanner-4.2.0.1873-windowsconfsonar-scanner.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=123456
10.环境变量配置
新建:
(1)name : SONAR_HOME value: E:sonarqube-7.0sonarqube-7.0
(2)name: SONAR_RUNNER_HOME value:E:sonarqube-7.0sonar-scanner-4.2.0.1873-windows
打开path,输入%SONAR_HOME%in;
打开path,输入%SONAR_RUNNER_HOME%in;
11.打开CMD窗口,输入 sonar-scanner -version,看到下图说明成功
12.找到需要扫描的项目,在项目的根目录下新建 sonar-project.properties文件,输入以下信息
sonar.projectKey=My_First_Maven_Project
sonar.projectName=My_First_Maven_Project
sonar.version=0.0.1-SNAPSHOT
sonar.sources=src --写相对路径
sonar.sources=target --写相对路径
#sonar.sources=E:Eclipsefile_myhMy_First_Maven_Projectsrcmainjava
#sonar.java.binaries=E:Eclipsefile_myhMy_First_Maven_Project argetclasses
说明:
sonar.projectKey:SonarQube服务器每次添加一个项目时要求填写一个项目名和关键字,此处是关键字
sonar.projectName:项目名,就和你的项目名称保持一致就好了
sonar.version:项目版本
sonar.sources:要扫描的源码路径,我在此处就直接写项目的绝对路径了 srcmainjava 源码路径
sonar.java.binaries:项目生成的class文件的路径 class 文件的路径
13设置成功后,启动sonarqube服务 127.0.0.1:9000页面 正常访问
14.在cmd进入项目所在的根目录,输入命令:sonar-scanner 开始扫描 (sonar-scanner -X 输出的信息更详情一点。。。推荐使用)
15.打开http://localhost:9000/,我们会看到主页出现了分析项目的概要图
------------------------------------------软件版本----------------------------------------------------
版本:
JDK 1.8.0
sonarqube-7.0
sonar-scanner-2.8
sonar-java-plugin-5.6.0.15032
-------------------------------------------------实践成果----------------------------------------------
----------------------------------------------遇到的问题----------------------------------------------
报错一:
报错参考资料:https://blog.csdn.net/weixin_33877885/article/details/92145638
报错:
java.lang.IllegalStateException: Fail to download the plugin (java, version 5.6) from https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.6.0.15032.jar (error is : Fail to download: https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.6.0.15032.jar (no proxy))
其中:
https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.6.0.15032.jar
自己电脑 安装的版本:sonar-java-plugin-5.1.0.13090.jar
路径----E:sonarqube-7.0sonarqube-7.0extensionsplugins
下载最新版本即可
报错二:
5、启动sonarqube 出现Process exited with exit value [es]: 1异常 查看logs 的es的log
java.lang.IllegalStateException: failed to obtain node locks, tried [[D:zzsonarqube-7.6dataes5sonarqube]] with lock id [0];
failed to obtain node locks, tried [[E:sonarqube-7.0sonarqube-7.0dataes5sonarqube]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?
被锁定了,要么重启要么注销---------自己还没实践
------------------------------------------------------eclipse 使用技巧-------------------------------------------------------------------------
1.src/main/java 源码路径
2.src/test/java 单元测试用例的路径
3.单元测试框架有:junit4,、testNg 使用的是junit4
4.项目右键--maven --update project 更新项目
5.project --clean 重新生成编译后的class文件
6. 项目右键--build path--configure build path --add libraries --junit--junit4
7.pox.xml配置文件
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>