我已经在我的项目中集成了jacoco-maven-plugin
,基于这个优秀的指南:http://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports-for-unit-and-integration-tests-with-the-jacoco-maven-plugin/
Jacoco插件运行良好。但是,maven-site-plugin
不包括网站中的Jacoco报告。更具体地说:“项目报告”部分不列出Jacoco报告。Jacoco报告本身在target/site/jacoco-ut
和target/site/jacoco-it
目录中可用。
这就是我所做的(到目前为止没有成功)。
首先,将jacoco-maven-plugin
作为插件包含在我的pom.xml
的build
部分中,如上面引用的指南中所述。我使用的是Jacoco版本0.6.4.201312101107。
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.plugin.version}</version>
<executions>
<!-- scissors... -->
<!-- report goal is bound to the pre-site phase -->
</executions>
</plugin>
字符串
第二,将jacoco-maven-plugin
包含在我的pom.xml
的report
部分:没有成功。
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.plugin.version}</version>
</plugin>
型
第三,尝试在report
部分中添加reportsets
部分到jacoco-maven-plugin
:没有成功。
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
型
任何人都可以帮助我使maven-site-plugin
引用的覆盖报告生成的Jacoco在'项目报告'部分的网站?
3条答案
按热度按时间9lowa7mx1#
我发现jacoco是非常棘手的,下面的配置为我工作,我把它放在一起的点点滴滴从博客中的属性
字符串
在建筑物内
型
希望有帮助!
izj3ouym2#
我所做的是将两个执行文件(
jacoco-ut.exec
和jacoco-it.exec
)合并到一个名为jacoco.exec
的文件中,然后将该文件设置为插件的dataFile
。首先,让我们定义这些属性:
字符串
然后,沿着生成报告的配置,包括以下代码片段以创建合并文件:
型
最后,配置
reporting
部分中的插件,以从合并后的文件生成报告:型
fnx2tebb3#
简短回答
你已经很接近解决方案了,但是
report
does not exist inpom.xml
,you needreporting
(maybe just misspelled?)reportSets
也不是build -> plugins -> plugin
的属性,而是reporting -> plugins -> plugin
的属性。因此,为了在生成的Maven站点中拥有JaCoCo报告,您需要指定JaCoCo Maven插件两次:
1.在
build -> plugins -> plugin
下启用Java代理(无需在此处添加report
目标)。reporting -> plugins -> plugin
指定reportSet
。最简单的代码片段是:
字符串
长应答
虽然也可以通过自定义
maven-site-plugin
的输出手动添加指向JaCoCo报告的链接,(例如通过site.xml
),这不是最简单的方法,也不是预期的方法。JaCoCo的ReportMojo
实现了MavenMultiPageReport
,这允许maven-site-plugin
将其检测为报告插件。然而,仅仅通过阅读文档,它的工作原理还远不明显。当在
build -> plugins
下指定report
目标时,maven-site-plugin
不知道JaCoCo报告存在。只有在reporting -> plugins
下给出时,它才被称为report
而不是goal
,尽管它实际上是一样的。当在这里指定时,(报告)插件将通过maven-site-plugin
间接启动(而不是直接通过Maven构建)。然而,为了使报告具有必要的信息,JaCoCo输出必须在报告之前存在,并且仅当目标
prepare-agent
(或集成测试的prepare-agent-integration
)已添加到build -> plugins
下的jacoco-maven-plugin
时才会出现这种情况。😅JaCoCo有三个报告(可以通过两种方式触发):
report
用于单个Maven项目report-aggregate
用于多模块Maven项目report-integration
用于集成测试所有这些都由
maven-site-plugin
自动检测(如果省略reportSet
,也会执行):型
长话短说,一个简单的Maven项目的完整pom.xml可能看起来像这样:
型
结果如下:x1c 0d1x
另请参阅: