java jacoco配置为多模块是不工作

agxfikkp  于 2023-02-28  发布在  Java
关注(0)|答案(2)|浏览(178)

我的jacoco配置有点奇怪,我无法弄清楚。我访问了堆栈溢出和其他平台上的多线程,尝试了很多方法,但没有解决这个问题。
我已经设置了多个模块的java代码覆盖率。这是我的项目结构

  • 美国广播公司
  • 模块1
  • DEF
  • 模块1
  • 模块2
  • 模块3

pom.xml
我已经为我的DEF maven项目配置了jacoco,我只是在配置我的DEF项目,这就是pom.xml包含的内容

<plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.8</version>
        <executions>
            <execution>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>report</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>report-aggregate</goal>
                </goals>
                <configuration>
                 <outputDirectory>${project.basedir}/target/reports</outputDirectory>
                </configuration>
                </execution>
        </executions>
    </plugin>

**问题:**这里的问题是,它在每个模块1、模块2和模块3中生成代码覆盖率报告。但模块1中生成的报告不包含其自身的代码覆盖率。也就是说,它显示模块2和模块3的代码覆盖率,但不包含模块1报告。我不知道是什么问题?
**EDIT:**DEF中的模块是maven模块,它不包含任何与jacoco相关的内容。

有什么想法或建议吗?
谢谢

ulydmbyx

ulydmbyx1#

再创建一个模块作为ReportAggregator,并将jacoco配置从父pom移动到ReportAggregator pom

ki1q1bka

ki1q1bka2#

感谢@Sarang的回复。它确实解决了我的问题,但之后我又遇到了一个问题,那就是我的一个模块没有生成jacoco.exec文件。经过一番调查,似乎问题出在<argLine>标记上。在我的一个模块中,我使用了这个标记,但不知何故,它被覆盖了。
我所做的就是在此之前预先附加argLine,这样就解决了我的问题

<configuration>
    <argLine>${argLine} -XX:PermSize=256m -XX:MaxPermSize=1048m</argLine>
</configuration>

相关问题