java web ant_jacoco-实战篇-ant-javaWeb项目

本文介绍了如何在Java Web项目中使用Ant和JaCoCo工具来生成代码覆盖率报告。首先,文章列出了配置本地Java、Ant、Maven和Tomcat环境的步骤。接着,创建了一个简单的Maven Web项目,并解决了缺少目录和JSP依赖的问题。然后,增加了测试接口并演示了如何通过Postman测试接口。最后,详细说明了配置Ant的build.xml文件以生成覆盖率报告的过程,包括设置JaCoCo参数、检查配置是否成功、启动Tomcat、执行Ant任务生成dump和报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前置条件:

配置本地java环境

配置本地ant环境

配置本地maven环境

配置本地tomcat环境

第一步:新建简单被测的java web,maven项目

打开eclipse工具,File -> New -> Project

78845712dae38ec081553e42dbe7180d.png

搜索maven,选择Maven Project,点击Next

bd3f961397138f26e9b540d7233138f4.png

点击Browse,选择本地工作空间,也就是存放新建的项目的目录所在位置。

bebefd993a146dcc61942798b6c39d0a.png

选择maven-archetype-webapp:

1c4ac94a87f58f9e5bb7df4819c94101.png

填写坐标,然后点击Finish:

5e88ceaa98a434def36612d349586600.png

完成后,项目如下图所示:

afe55b76ad5f2674e0ba57c2fca50117.png

存在问题1:缺失部分目录

补齐目录结构:

在工程名称(test-tomcat)处右键,选择Build Path->Configure Build Path:

ce733636175c088a399dbe4eb78a191a.png

点击Source,分别选择错误目录,点击remove:

c4c8e6945c48e427fd37aebe92be53fe.png

然后点击新增目录:java、test/java

683fac8b8452a5d8469273dc77b4b95e.png

0f8ca1ede178665be70779d6312e91ad.png

完成后,如下图,点击应用 Apply and  Close:

c7280cbbcd4ce08eb89f61bd594e0e51.png

问题2:jsp依赖缺失项目报错

664871f04d163ebfbb7549bcd42feb3d.png

53666139dc01357b91447eed79f454b5.png

解决问题:

添加依赖,依赖内容如下:

pom.xml文件内容如下:

4.0.0

com.jacoco

test-tomcat

war

1.0.0

UTF-8

1.7

1.7

com.alibaba

fastjson

1.2.62

junit

junit

4.11

test

javax.servlet

javax.servlet-api

3.1.0

javax.servlet.jsp

javax.servlet.jsp-api

2.3.1

javax.servlet

jstl

1.2

test-tomcat

至此项目新建完成,不报错,成品截图:

05108f7e32888f1d885f071d516f709f.png

第二步:增加测试接口内容,提供一个接口

(虽然只提供一个接口,但是此处目的是为了演示tomcat版的代码覆盖率,所以为了方便,提供一个接口)

新增一个包:(也就是建个多级目录)

2b091a888ae72f83fad06b100fb37a02.png

b2ef2317e44014c828c34ce00c8da879.png

新增一个servlet类:

f4c74409d5077333a611e380eaad3f55.png

75bba1dca8e93b65dd931b5655ebceaf.png

类中代码如下:

importcom.alibaba.fastjson.JSON;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.HashMap;importjava.util.Map;/*** 测试jacoco的servlet*/@WebServlet("/jacoco-test")public class JacocoServlet extendsHttpServlet {privateString message;

@Overridepublic voidinit() {

message= "Hello world, this message is from servlet!";

}

@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throwsIOException {//设置相应内容类型

resp.setContentType("text/json;charset=utf-8");//实例化输出流对象

PrintWriter out =resp.getWriter();

Map resultMap = new HashMap<>();

String data= req.getParameter("data");if ("daling".equals(data)) {

resultMap.put("data", "daling");

}else if ("dalingjia".equals(data)){

resultMap.put("data", "dalingjia");

}else{

resultMap.put("data", "helloworld");

}

out.println(JSON.toJSONString(resultMap));

}

@Overridepublic voiddestroy() {super.destroy();

}

}

代码测试:

前置条件:

eclipse配置关联本地tomcat

eclipse配置关联本地maven

1、项目配置通过tomcat容器运行

2、通过postman请求上述接口地址,如下图:访问成功

b38a6f2408fd64e26f9531ab6ebdb363.png

第三步:配置ant,本地创建一个build.xml文件,内容如下:

需要修改的内容:

1、jacocoant.jar的位置(jacocoantPath)

2、exec文件生成的具体路径(jacocoexecPath)

3、服务的ip和对外提供的tcpserver 的端口

4、源码和字节码路径

备注:支持多源码目录,也就是可以支持一台机器多个服务的覆盖率报告的dump和生成报告

第四步:正儿八经的开始覆盖率报告的生成步骤

1、配置

windows修改配置:【此处使用方式2】

方式1:

set"JAVA_OPTS=%JAVA_OPTS% -javaagent:D:/Downloads/jacoco-0.7.9/lib/jacocoagent.jar=includes=*,output=file,append=true,destfile=D:/Downloads/jacoco-0.7.9/target/jacoco.exec"

方式2:

set"JAVA_OPTS=%JAVA_OPTS% -javaagent:D:/Downloads/jacoco-0.7.9/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9001,address=127.0.0.1"

Linux修改配置:(需要将项目打包生成的war包丢到tomcat的webapps目录下,然后到tomcat对应的bin目录下执行./startup.sh启动tomcat)

JAVA_OPTS="-javaagent:/Users/yan/workspace/workconfig/jacoco-0.8.5/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9001,address=127.0.0.1"

IDEA启动服务,配置:

在VM options中添加:-javaagent:/Users/yan/workspace/workconfig/jacoco-0.8.5/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9001,address=127.0.0.1

38c715101b85a29bb2303d73e9742de0.png

2、检查是否配置成功

执行命令:ps -ef | grep tomcat | grep --color jacoco

出现入下图所示,则表示配置成功:

216d9869ff280b937e21adcfdb4ca1ea.png

3、启动tomcat运行服务,进行接口请求

437696366218f53ab83a855f5cdc59e4.png

4、在build.xml文件目录下,执行ant  dump,会在指定的目录下导出exec文件

5、在build.xml文件目录下,执行ant  report,会在指定的目录下生成覆盖率报告

如下图所示:

ebafedbdae8e782f64d9dc79549e2757.png

右键report目录中的index.html文件浏览器打开:

4e4c6dfba568fd60cdcbc8ab80a780d8.png

至此完成java-web-maven项目,使用ant生成覆盖率报告的步骤讲解。

总结:

1、配置tomcat,在catalina.sh文件中配置javaagent添加如下内容:JAVA_OPTS="-javaagent:/Users/yanfuchang/workspace/workconfig/jacoco-0.8.5/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9001,address=127.0.0.1"

2、配置ant所需的build.xml文件,文件中需要指定相关目录。

3、执行ant dump 、ant  report 生成覆盖率报告。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值