记录瞬间
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 ...