java+调用jacoco_java操作Jacoco合并dump文件

本文档详细介绍了如何使用Java操作JaCoCo的源码,实现对多个dump文件的合并,以便进行统一的分析。通过创建MergeDump类,加载并执行合并,最终将所有dump文件合并成一个文件进行保存。
摘要由CSDN通过智能技术生成

记录瞬间

import org.apache.maven.plugin.MojoExecutionException;

import org.jacoco.core.tools.ExecFileLoader;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

public class MergeDump {

private final String path ;

private final File destFile ;

public MergeDump(String path){

this.path = path;

this.destFile = new File(path + "/jacoco.exec");

}

private List fileSets(String dir){

System.out.println(dir);

List fileSetList = new ArrayList();

File path = new File(dir);

if ( ! path.exists() ){

System.out.println("No path name is :" + dir);

return null;

}

File[] files = path.listFiles();

try {

if (files == null || files.length == 0) {

return null;

}

} catch (NullPointerException npe) {

npe.printStackTrace();

}

for (File file : files) {

if (file.getName().contains(".exec")) {

System.out.println("文件:" + file.getAbsolutePath());

fileSetList.add(file);

} else {

System.out.println("非exec文件:" + file.getAbsolutePath());

}

}

return fileSetList;

}

public void executeMerge() throws MojoExecutionException {

final ExecFileLoader loader = new ExecFileLoader();

load(loader);

save(loader);

// 执行完成后,删除非必须的dump文件

for (final File fileSet : fileSets(this.path)) {

if ( ! fileSet.getName().equals("jacoco.exec") ) {

fileSet.delete();

}

}

}

/**

* 加载dump文件

* @param loader

* @throws MojoExecutionException

*/

public void load(final ExecFileLoader loader) throws MojoExecutionException {

for (final File fileSet : fileSets(this.path)) {

System.out.println(fileSet.getAbsoluteFile());

final File inputFile = new File(this.path, fileSet.getName());

if (inputFile.isDirectory()) {

continue;

}

try {

System.out.println("Loading execution data file " + inputFile.getAbsolutePath());

loader.load(inputFile);

System.out.println(loader.getExecutionDataStore().getContents());

} catch (final IOException e) {

throw new MojoExecutionException("Unable to read "

+ inputFile.getAbsolutePath(), e);

}

}

}

/**

* 执行合并文件

* @param loader

* @throws MojoExecutionException

*/

public void save(final ExecFileLoader loader) throws MojoExecutionException {

if (loader.getExecutionDataStore().getContents().isEmpty()) {

System.out.println("Skipping JaCoCo merge execution due to missing execution data files");

return;

}

System.out.println("Writing merged execution data to " + this.destFile.getAbsolutePath());

try {

loader.save(this.destFile, false);

} catch (final IOException e) {

throw new MojoExecutionException("Unable to write merged file "

+ this.destFile.getAbsolutePath(), e);

}

}

}

实现了,存在多个dump文件时,通过调用jacoco的源码,对多个dump文件合并,合并成一个dump文件,便于分析。

java操作JacocClient下载dump文件

记录瞬间 import org.jacoco.core.data.ExecutionDataWriter; import org.jacoco.core.runtime.RemoteControlRe ...

java操作Excel、PDF文件

java操作Excel.PDF文件 分享者:Vashon 分享来源:CSDN博客 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的 ...

java操作office和pdf文件java读取word,excel和pdf文档内容

在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

java操作office和pdf文件页面列表导出cvs,excel、pdf报表.

在平常的开发中我们常常遇到不仅仅只是导出excel报表的情况.有时候也需要导出pdf或者CSV报 表.其实原理都差不多.刚开始本来不打算也这篇博客介绍这个的.感觉这篇博客和前面的博客有点雷同.原理基本 ...

java操作FTP,实现文件上传下载删除操作

上传文件到FTP服务器: /** * Description: 向FTP服务器上传文件 * @param url FTP服务器hostname * @param port FTP服务器端口,如果默认端 ...

Java操作Jxl实现导出数据生成Excel表格数据文件

实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...

认识Java Core和Heap Dump

什么是Java Core和Heap Dump Java程序运行时,有时会产生Java Core及Heap Dump文件,它一般发生于Java程序遇到致命问题的情况下. 发生致命问题后,Java进程有时 ...

java OOM还在看log日志,兄弟你错的的很严重,正确方式是分析dump文件

目录 OOM异常--intsmaze 正确姿势dump文件分析--intsmaze 正确的姿势--intsmaze dump丢失打印--intsmaze 哪些内存溢出会产生dump文件--intsma ...

[转载]java合并word文件

需求背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何动态生成一张word试卷.事先把题库中的每一道试题都已经保存成一个独立的word文件了,但是在选择了部分试题生成一张word试卷的 ...

随机推荐

【codeforces 148D】 Bag of mice

http://codeforces.com/problemset/problem/148/D (题目链接) 题意 包中有w个白鼠,b个黑鼠.公主和龙轮流画老鼠,公主先画,谁先画到白鼠谁就赢.龙每画完一 ...

parse date receiving from mvc jsonresult

if we received data like this: ,"Date":"\/Date(1410969600000)\/", we can parse i ...

hdu 4155 The Game of 31 博弈论

给出序列,在剩下的卡中选择,谁先拿到大于31的输,搜一下就可以了! 代码如下: #include #include ]; ],sum; boo ...

重读The C programming Lanuage 笔记四:c预处理

C预处理器执行宏替换.条件编译以及包含指定的文件.以#开头的命令行就是与处理器的对象.这些命令行的语法独立于语言的其他部分,它们可以出现在任何地方,其作用可延续到所在编译单元的末尾(与作用域无关).行 ...

LeetCode OJ 83. Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

asp.net中使用jquery ajax保存富文本的问题

前提:为了保证页面的不刷新行为,所以采用了html+jquery+handler的页面保存方式,通过ajax将富文本内容传递给一般处理程序进行操作. 一.问题:1.大文件无法上传? 2.传入handl ...

使用OpenCV训练Haar like+Adaboost分类器的常见问题

——使用OpenCV训练Haar like+Adaboost分类器的常见问题 最近使用OpenCV训练Haar like+Adaboost ...

unity提示can't add script解决办法

1.脚本有误没有继承unity类. 2.类名文件名不一致. 3.内部逻辑代码有误.

Adb logcat 抓日志

http://blog.csdn.net/hujiachun1234/article/details/43271149 http://www.cnblogs.com/medsonk/p/6344373 ...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pg_dump是PostgreSQL数据库备份工具,它可以将一个 PostgreSQL 数据库的结构和数据以 SQL 脚本或二进制格式存储到文件中。如果想要使用Java解析pg_dump文件,可以通过以下步骤实现: 1. 读取pg_dump文件:使用Java IO中的FileReader和BufferedReader读取pg_dump文件中的内容。 2. 解析pg_dump文件:pg_dump文件中的内容包含了数据库的结构和数据信息,可以使用Java正则表达式或者字符串分割的方式解析pg_dump文件中的内容,提取出所需的数据。 3. 将解析出的数据存储到数据库中:使用Java JDBC连接到PostgreSQL数据库,将解析出的数据写入到数据库中。 以下是示例代码: ```java import java.io.BufferedReader; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class PgDumpParser { public static void main(String[] args) { String filename = "backup.sql"; // pg_dump备份文件名 String url = "jdbc:postgresql://localhost:5432/mydb"; // 数据库连接URL String user = "postgres"; // 数据库用户名 String password = "password"; // 数据库密码 try (Connection conn = DriverManager.getConnection(url, user, password); BufferedReader br = new BufferedReader(new FileReader(filename))) { String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { // 解析pg_dump文件,提取出所需的数据 if (line.startsWith("INSERT INTO")) { sb.append(line); if (line.endsWith(";")) { String sql = sb.toString(); // 将解析出的数据存储到数据库中 try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } sb.setLength(0); } } } } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码仅作为示例,实际使用时需要根据pg_dump文件的结构和数据格式进行相应的解析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值