我们有一个多模块 Maven 项目。我们用的是java8。
\n-Parent\n-- Child 1\n-- Child 2\n-- Coverage-Report\n
Run Code Online (Sandbox Code Playgroud)\n所有项目都有单元测试用例,运行良好,覆盖率超过 85%。父 pom.xml 文件具有 jacoco-profile 和 jacoco-maven-plugin 插件,如下所示
\n <plugin>\n <groupId>org.jacoco</groupId>\n <artifactId>jacoco-maven-plugin</artifactId>\n <version>0.8.6</version>\n <configuration>\n <destFile>${sonar.coverage.jacoco.xmlReportPaths}</destFile>\n <append>true</append>\n </configuration>\n <executions>\n <execution>\n <id>prepare-agent</id>\n <goals>\n <goal>prepare-agent</goal>\n </goals>\n </execution>\n <execution>\n <id>report</id>\n <phase>verify</phase>\n <goals>\n <goal>report</goal>\n </goals>\n </execution>\n </executions>\n </plugin>\n
Run Code Online (Sandbox Code Playgroud)\n在Coverage-Report模块中,只有pom.xml用于聚合报告。它的配置文件为 jacoco 如下
\n <profile>\n <id>jacoco</id>\n <activation/>\n <build>\n <plugins>\n <plugin>\n <groupId>org.jacoco</groupId>\n <artifactId>jacoco-maven-plugin</artifactId>\n <executions>\n <execution>\n <id>report-aggregate</id>\n <phase>verify</phase>\n <goals>\n <goal>report-aggregate</goal>\n </goals>\n </execution>\n </executions>\n </plugin>\n </plugins>\n </build>\n </profile>\n
Run Code Online (Sandbox Code Playgroud)\n要生成报告,我们使用以下命令
\nmvn clean verify -Pjacoco\n
Run Code Online (Sandbox Code Playgroud)\n我们确实看到父 pom.xml …