简介
Jacoco 是一个开源的覆盖率工具。
Jacoco 可以嵌入到 Ant
、Maven
中,并提供了 EclEmma Eclipse
插件,也可以使用 JavaAgent
技术监控 Java 程序
。
很多第三方的工具提供了对 Jacoco 的集成,如 sonar、Jenkins 等。
今天分享使用的环境是:
k8s+jenkins
构建的,其中涉及到了在 node 节点机的容器中生成 jacoco.exec
文件,然后将其拷贝到节点机,再从节点机将 jacoco.exec
文件拷贝到 jenkins
的代码库中,用于生成报告。
操作步骤
**Step1:**引入相应的 jar 到应用服务的目录下,并修改需要监测的应用服务的启动脚本
以下是在 jenkins 中将相应应用服务部署脚本进行了调整
echo '
cd /opt/
wget http://192.168.214.100:7777/jacoco/tools/jacocoagent.jar #此处启动了一个siampleHttp 服务,用于获取jar 包
wget http://192.168.214.100:7777/jacoco/tools/jacocoant.jar
wget -O buildexec.xml http://192.168.214.100:7777/jacoco/buildexec/build.xml
wget http://192.168.214.100:7777/jacoco/tools/cron.sh
sh cron.sh& #此处见step2 中编辑的脚本
sed -i "s#exec java#exec java -javaagent:/opt/jacocoagent.jar=includes=*,output=tcpserver,port=8044,address=127.0.0.1 -Xverify:none -javaagent:/opt/skywalking-agent/skywalking-agent.jar #g" /opt/mt/bin/startup.sh &&
cd /opt/mt/ &&
dos2unix -k start.sh &&
cd /opt/mt/bin/ &&
dos2unix -k startup.sh &&
sh startup.sh
'> ./start.sh
Step2: 用于在容器里定时生成 jacoco.exec
此 jacoco.exec
文件是拿取的代码执行的情况文件所生成的一个 exec文件
,该文件仅仅是 Step1 中需要的一个脚本文件。
[