【问题标题】:Is there a way to instrument jar files with JaCoCo Java API?有没有办法使用 JaCoCo Java API 检测 jar 文件?
【发布时间】:2018-08-10 16:30:34
【问题描述】:

我正在从 Emma 迁移。到 JaCoCo,到目前为止一切正常。我正在努力解决的一个问题是代码中的一部分 EMMA 正在检测来自一些依赖于主项目的子项目的一组 jar 文件。

在 EMMA 上,代码如下所示:

InstrProcessor processor = InstrProcessor.create();
processor.setInstrPath(getFilePaths(jars), false);
processor.setOutMode(OutMode.OUT_MODE_OVERWRITE);
processor.setMetaOutFile(metadataFile.getAbsolutePath());
processor.setMetaOutMerge(merge);
processor.run();

我为 JaCoCo 找到的最接近的类是 Instrumenter 类,但它似乎不只接收输入流的文件。 JavaDoc 中没有关于它工作的提示。有什么想法吗?

【问题讨论】:

    标签: java api jacoco


    【解决方案1】:

    引用JavaDoc of a method org.jacoco.core.instr.Instrumenter#instrumentAll:

    根据其类型创建给定资源的检测版本。类文件和归档文件的内容被检测。所有其他文件都被复制而不修改。

    try (
      FileInputStream in = new FileInputStream("input.jar");
      FileOutputStream out = new FileOutputStream("output.jar");
    ) {
      instrumenter.instrumentAll(in, out, "input.jar");
    }
    

    这正是instrumentation of JAR files implementedJaCoCo Command Line Interface 中的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-10
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 2015-07-03
      • 1970-01-01
      • 2019-05-08
      相关资源
      最近更新 更多