jacoco源码分享-1

959 阅读1分钟

0. 源码地址

    url: git@github.com:jacoco/jacoco.git
    tag: v0.8.3

1. 实现原理

    java agent (jvm加载jacoco jar包)
    asm (字节码操作框架)
    执行过程:
    jvm在读取class文件后会回调 ClassFileTransformer.transform方法
    jacoco的CoverageTransformer实现了ClassFileTransformer接口,完成探针的注入

2. 使用tcp模式启动jacoco进行插桩

    在java启动命令中加入 -javaagent 参数
    例如 java -javaagent:jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=localhost,append=true <被测服务的jar包>

3. jacocoagent.jar包中Premain-class配置和入口类

4. 以下是我的jacoco分享ppt和增量改造的代码(README.md有编译打包说明)

ppt 链接: pan.baidu.com/s/1myREhZO4… 密码: 7kdn

源代码(包含增量覆盖率改造)链接: pan.baidu.com/s/1N7_TnXLW… 密码: q3ar