为什么jar包代码与源代码不一致_Jacoco代码覆盖率工具

Jacoco

什么是Jacoco?

Jacoco是一个开源的Java代码覆盖率工具,Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins等。

软件安装

Ant

Jacoco 在官网上下载Jacoco,官网地址:http://www.eclemma.org/jacoco/

67081d27019d91455d529a2259ee2a20.png

1. 在部署的tomcat服务中,/bin/catalina.sh中JAVA_OPTS参数值添加。

file:

-javaagent:/app/jacoco/jacocoagent.jar=destfile=/tmp/jacoco.exec,append=true,includes=*,output=file"

tcpserver:

-javaagent:/app/jacoco/jacocoagent.jar=includes=*,output=tcpserver,port=1111,,append=false,address=10.100.139.91

其中:/app/jacoco/jacocoagent.jar为安装jacoco的jacocoagent.jar包绝对路径;output覆盖率数据输出的形式,有file, tcpserver, tcpclient, 默认是file,file是在jvm停掉时才将覆盖率数据dump出来;address和port可以提供client访问,并dump出覆盖率数据文件, 在build.xml会使用。

如果用file的方式获得覆盖率的话,需要shutdown tomcat,执行./shutdown.sh ,如果不行的话,执行kill但是千万不能执行kill -9。执行完kill后,会把覆盖率dump到jacoco.exec

2. 启动tomcat服务,sh /bin/startup.sh

3. 编写build.xml

如果你的web工程里面还引入了别的工程,例如你现在tomcat所部署的war包只是web的入口,实际的逻辑,模型等都作为jar包放在这个工程的lib里面的时候,此时你又要统计这些逻辑模型的代码覆盖率,那么你需要做的是:1、把lib中你需要统计覆盖率的jar包解压出来;2、把jar包对应的源代码上传上去;3、build.xml中structure下面建立多个group,对应的源文件和类文件也要新增进去;

4. 在build.xml所在的目录执行下面命令t将会把报告输出到相应的目录下面

/app/export/servers/apache-ant-1.9.7/bin/ant dump

/app/export/servers/apache-ant-1.9.7/bin/ant report

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值