当前位置: 首页 > 知识库问答 >
问题:

为什么Jacoco合并不包括文件?

甘永春
2023-03-14

我有一个多模块的maven项目,并试图使用Jacoco生成聚合报告,并运行“聚合”检查。但是,我无法以任何可能的方式使Jacoco合并功能通过maven插件工作。因此,我试图创建一个最小的示例,如下所示

    null
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.jacoco</groupId>
    <version>0.1-SNAPSHOT</version>
    <artifactId>coverage</artifactId>

    <name>Coverage report</name>
    <description>Coverage report module</description>

    <build>
        <plugins>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>merge-results</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>merge</goal>
                        </goals>
                        <configuration>
                            <fileSets>
                                <fileSet>
                                    <directory>${basedir}/}</directory>
                                    <includes>
                                        <include>*.exec</include> <!-- In the end, I tried a lot of different include options, but nothing seems to work -->
                                        <include>jacoco1.exec</include>
                                        <include>jacoco2.exec</include>
                                    </includes>
                                </fileSet>
                            </fileSets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>
[DEBUG] Configuring mojo org.jacoco:jacoco-maven-plugin:0.8.6:merge from plugin realm ClassRealm[plugin>org.jacoco:jacoco-maven-plugin:0.8.6, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'org.jacoco:jacoco-maven-plugin:0.8.6:merge' with basic configurator -->
[DEBUG]   (f) destFile = /Users/rsn/git/coverage-mve/coverage/target/jacoco.exec
[DEBUG]   (s) directory = /Users/rsn/git/coverage-mve/coverage/}
[DEBUG]   (s) includes = [*.exec, jacoco1.exec, jacoco2.exec]
[DEBUG]   (f) fileSets = [org.apache.maven.shared.model.fileset.FileSet@56681eaf]
[DEBUG]   (f) project = MavenProject: com.jacoco:coverage:0.1-SNAPSHOT @ /Users/rsn/git/coverage-mve/coverage/pom.xml
[DEBUG]   (f) skip = false
[DEBUG] -- end configuration --
[INFO] Skipping JaCoCo merge execution due to missing execution data files
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre
Default locale: en_DK, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "Mac"

我尝试下载jacococli.jar并手动合并文件,这很好。我想这可以用maven ant run插件下载并运行作为解决方案,但我更喜欢只使用插件!

有什么想法会导致这个问题吗?

共有1个答案

郭永安
2023-03-14

您的

<fileSet>
  <directory>${basedir}/}</directory>

看起来可疑-注意尾随的花括号,它可能被解释为目录名。

 类似资料:
  • 每次我试图编译它来测试它不recongnise文件

  • 傍晚 我正在玩一个小的swing应用程序,我添加了一个按钮,可以对被按下做出响应。因此,我需要实现ActionListener。我已经添加了这一行: 但是它告诉我它找不到“ActionListener”类。所以过了一会儿,我得到了这个: 我假设awt。*部分意味着它在awt伞下导入所有子包。显然情况并非如此。有人能为我澄清这个问题吗?

  • 由于这里有一些很好的答案,我基本上(显然是以有限的方式)理解了Haskell的的目的,并且它的定义是 然而,我不太清楚为什么是这个定义的一部分。据我所知,这就是本身的定义所在,但相关的留档并没有对此做太多说明。 我认为在

  • 我创建了一个类(正如书中所说)来保存从键盘输入的一个人的姓名和姓氏,然后还有另一个类,它将一个人的国家代码、区号和号码封装为字符串 Person将用作Hashmap中的键 Class封装了和。许多对象组成了一个表示电话簿的HashMap。 实现了

  • 我正在编写一个小的Java库,其中包含我通常在大多数android应用程序中包含的相关代码。我决定将库导出为一个jar文件,然后将该文件放到我未来项目的libs文件夹中。 null 现在,当我在我的一个android应用程序中使用这个jar时,除了Doc部分之外,所有的一切都像预期的那样运行。当我悬停在我的库的类和方法上时,我看不到我编写的文档注释。 Q1:我是不是又少了一步? Q2:jar文件应

  • 问题内容: 给你 为什么不选择1-11? 他们是只是决定随机执行此操作,还是有一些我没有看到的价值? 问题答案: 因为调用包含10个等于的元素更为常见。请记住,程序员更喜欢基于0的索引。 另外,请考虑以下常见代码段: 你能看到如果精确到这将是有问题的吗?程序员需要显式减1。这也遵循程序员喜欢的共同趋势。 如果你经常以1开头的范围调用范围,则可能需要定义自己的函数: