Quarkus中如何设置JaCoCo报告名称?为何未使用artifactId?
JaCoCo报告标题显示首个测试类而非项目artifactId的问题解决
1. 为何未使用artifactId?
默认情况下,Quarkus集成的JaCoCo Maven插件在未显式指定报告标题时,会将首个执行的测试类名称作为报告的h1标题,而非自动复用Maven项目的artifactId。这是JaCoCo插件的默认行为——它会基于测试执行的上下文动态生成标题,没有默认绑定项目的POM属性。
2. 如何设置报告名称?
有两种常用方式可以自定义JaCoCo报告的标题:
方式一:通过Maven pom.xml配置
直接在jacoco-maven-plugin的report执行目标中添加title配置,可直接引用项目的artifactId或自定义标题:
<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.11</version> <!-- 替换为你当前使用的JaCoCo版本 --> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>default-report</id> <goals> <goal>report</goal> </goals> <configuration> <!-- 使用项目artifactId作为报告标题 --> <title>${project.artifactId}</title> <!-- 或者设置自定义标题 --> <!-- <title>XX项目代码覆盖率报告</title> --> </configuration> </execution> </executions> </plugin>
配置完成后,重新执行./mvnw test生成报告,h1标签就会显示你设置的标题。
方式二:修改jacoco.xml配置文件
如果你使用了自定义的jacoco.xml配置文件,直接在<report>标签的name属性中填入目标名称即可:
<!-- jacoco.xml中的配置 --> <report name="${project.artifactId}"> <!-- 其他报告结构配置(如分组、类过滤等) --> </report>
同时需要确保pom.xml中的JaCoCo插件引用了这个配置文件:
<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.11</version> <executions> <!-- 其他执行目标配置 --> <execution> <id>default-report</id> <goals> <goal>report</goal> </goals> <configuration> <jacocoXmlPath>${project.basedir}/path/to/jacoco.xml</jacocoXmlPath> </configuration> </execution> </executions> </plugin>
内容的提问来源于stack exchange,提问作者gian1200
相关产品推荐
相关产品推荐

