前言
基于上一篇,我们便可以集成到jenkins进行构建。
必备环境:
- jenkins
- jacoco
- ant
- maven
- java 源码:https://github.com/git-gsxl/jacoco-demo
一、jacoco 与 java 服务
实际是自己的一个demo服务,实际使用中是运维那边起的服务,那么就可以让他们配置一下ant,以及服务启动时多加一个参数。
1、将 jacoco-0.8.6.zip 包解压到任意目录,如下:/root/jenkins/data:
![](https://i-blog.csdnimg.cn/blog_migrate/4dd89232644b37470d0bc99684e76a02.png)
2、拿到 java 源码里面的demo-V1024.jar包:
启动时增加的参数:
-javaagent:/root/jenkins/data/jacoco-0.8.6/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9999,address=0.0.0.0,append=false
我的测试服务启动:
nohup java -javaagent:/root/jenkins/data/jacoco-0.8.6/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9999,address=0.0.0.0,append=false -jar demo-V1024.jar > java.log 2>&1
![](https://i-blog.csdnimg.cn/blog_migrate/057715f077957c7a6efcee2e48c9c883.png)
二、jenkins配置
本篇是基于docker-jenkins进行安装配置,与war包等其它方式大同小异。
1、安装 jacoco、ant、maven 插件
①jacoco:
![](https://i-blog.csdnimg.cn/blog_migrate/96587d4bfd5ad69dae18aa7796d6d749.png)
②ant:
![](https://i-blog.csdnimg.cn/blog_migrate/26e52591e18528f6498634be8fc04a8b.png)
③maven:
![](https://i-blog.csdnimg.cn/blog_migrate/e3f6e2014e86c3d4f8be0a3eb95c8102.png)
2、全局工具配置mvn配置文件
settings.xml是mvn的配置文件,增加了aliyun的源,这样能下载包更快些。
当然你也可以在jenkins的mvn conf目录下进行更改。
![](https://i-blog.csdnimg.cn/blog_migrate/283e92d215dd6ead08005e9fa238dd97.png)
3、ant、mvn 安装配置
![](https://i-blog.csdnimg.cn/blog_migrate/8be8ac756db84584b15ff752dd450e79.png)
三、新建 jenkins job
1、新建job名称为:jacoco
2、设置 git 代码地址:https://github.com/git-gsxl/jacoco-demo.git
![](https://i-blog.csdnimg.cn/blog_migrate/2a55f8f6a4abc95efb8b8b2a95b4c2de.png)
3、新增 mvn 配置
①添加 mvn 步骤(需要点击“高级”展开)
![](https://i-blog.csdnimg.cn/blog_migrate/bd251c3bf239f706bdc0560bfbe56a37.png)
② 配置 mvn 参数
compile:是将Java 源程序编译成 class 字节码文件
![](https://i-blog.csdnimg.cn/blog_migrate/1ccb69475720644d4eb55cce243a82a9.png)
4、新增 ant 配置
①添加 ant 步骤
![](https://i-blog.csdnimg.cn/blog_migrate/346c3f18af3272269f5b6565e2387927.png)
②配置 ant 参数(需要点击“高级”展开)
参数:
- Ant Version:ant选择全局工具配置的版本
- Targets:运行的dump
- Build File:jenkins-build.xml,因为这里有多个xml文件所以需要指定
- Properties:构建的参数
- jacocoantPath:jacocoant.jar包文件路径
- jacocoexecPath:jacoco生成的exec文件路径
- server_ip:后端起服务时增加的i参数:ip
- server_port:后端起服务时增加的i参数:端口
- reset:是否重置jmv覆盖率数据,布尔值
- append:是否增量,布尔值
jacocoantPath=/var/jenkins_home/data/jacoco-0.8.6/lib/jacocoant.jar
jacocoexecPath=$WORKSPACE/target/coverage/jacoco.exec
server_ip=47.xxx.xxx
server_port=9999
reset=ture
append=ture
因为我是docker-jenkins,所以容器内部前面我已经把jacoco目录挂载到了jenkins/data下面。
所以我jacoco在容器的这个路径:/var/jenkins_home/data/jacoco-0.8.6/lib/jacocoant.jar
jacocoantPath:是在工作目录下的,所以是:$WORKSPACE/target/coverage/jacoco.exec
![](https://i-blog.csdnimg.cn/blog_migrate/e3c1cd663610edbb8f97fff08dec8cf5.png)
5、jacoco报告配置
①添加 jacoco报告 步骤
![](https://i-blog.csdnimg.cn/blog_migrate/515fff3319c9b020fe0fb4bfc208d51e.png)
②配置 jacoco报告 参数
![](https://i-blog.csdnimg.cn/blog_migrate/57bc4c3a4c1482d8b1a685b0d01ffcab.png)
6、保存 job,并构建。
构建首次会很慢,因为要拉取git、下载ant、maven。
运行可以先访问一下java代码服务的接口,这样构建后才有覆盖率,不然为空。
![](https://i-blog.csdnimg.cn/blog_migrate/3bee886d85d2e24d6586b192da5bc9b3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/40f8cdc298f3543deb4ee4642fc1c29d.png)
如果觉得ant、maven下载很慢,那么可以自行下载好包,挂载到 jenkins 目录,进行配置。
欢迎来大家QQ交流群一起学习:482713805