一、打包
- 下载代码,切换到dev分支,执行mvn clean package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
- 进入jacoco\target目录,解压刚打的包jacoco-0.8.5.202006300741.zip
- 使用压缩软件打开jacocoagent.jar,删除META-INF目录下.SF,.DSA,*.RSA文件
- 使用压缩软件打开jacococli.jar,删除META-INF目录下.SF,.DSA,*.RSA文件
- 使用压缩文件打开jacococli.jar,删除com\jcraft\jsch(只删除jsch目录)
- 使用压缩文件打开jsch-0.1.55.jar,将其中\com\jcraft\jsch拷贝到jacococli.jar\com\jcraft\目录下
二、使用方式
支持3种方式,分别是全量覆盖、基于分支的增量覆盖、基于tag的增量覆盖
1、启动服务
- jar包启动,启动命令如下
java -javaagent:F:\jacoco-0.8.5.20200630074\lib\jacocoagent.jar=includes=*,output=tcpserver,port=2020,address=localhost,append=true -jar zdh-0.0.1-SNAPSHOT.jar
- tomcat启动
windows在catalina.bat第二行添加如下脚本
set JAVA_OPTS=-javaagent:F:\jacoco-0.8.5.20200630074\lib\jacocoagent.jar=includes=*,output=tcpserver,port=2020,address=localhost,append=true -Xverify:none
linux在catalina.sh第二行添加如下脚本
JAVA_OPTS="-javaagent:/home/systemtools/jacoco-0.8.5.20200630074/lib/jacocoagent.jar=includes=*,output=tcpserver,port=2020,address=localhost,append=true -Xverify:none"
2、导出覆盖率数据
java -jar F:\jacoco-0.8.5.20200630074\lib\jacococli.jar dump --address localhost --port 2020 --destfile zdh.exec
3、生成报告
- 全量报告
java -jar F:\jacoco-0.8.5.20200630074\lib\jacococli.jar report zdh.exec --type 1 --classfiles E:\workspace\zdh\target\classes\com --sourcefiles E:\workspace\zdh\src\main\java --html report --xml report.xml
- 基于分支的增量报告
java -jar F:\jacoco-0.8.5.20200630074\lib\jacococli.jar report zdh.exec --type 2 --gitName zhangfei --gitPassword 123456 --gitDir E:\workspace\zdh --newBranchName dev1 --oldBranchName dev2 --classfiles E:\workspace\zdh\target\classes\com --sourcefiles E:\workspace\zdh\src\main\java --html report --xml report.xml
- 基于tag的增量报告
java -jar F:\jacoco-0.8.5.20200630074\lib\jacococli.jar report zdh.exec --gitName zhangfei --gitPassword 123456 --gitDir E:\workspace\zdh --branchName master --newTag 49117d1 --oldTag f1563cc --classfiles E:\workspace\zdh\target\classes\com --sourcefiles E:\workspace\zdh\src\main\java --html report --xml report.xml
- 参数说明
- classfiles,编译后的class目录
- sourcefiles,源文件目录,理论可以不传,不传的话 只能到文件级的展示,再细 需要具体代码和行数就需要这个了
以下是新增的参数说明 - type,分析类型,1全量,2基于分支增量,3基于tag增量,不传默认等于3
- gitDir,git本地目录,只有type=2或者3时需要此参数,不传默认当前目录
- gitName,git用户名,只有type=2或者3时需要此参数
- gitPassword,git密码,只有type=2或者3时需要此参数
- branchName,分支名称,type=3时需要此参数,不传默认master
- newTag,新tag(预发版本),type=3时需要此参数
- oldTag,基线tag(变更前的版本),type=3时需要此参数
- newBranchName,开发分支(预发分支),type=2时需要此参数
- oldBranchName,基线分支,type=2时需要此参数,不传默认master