多个Maven项目,单个JaCoCo网站?

Sca*_*rfe 1 java testing junit maven jacoco

我正在为一家使用多个Maven项目/模块的公司工作,以创建最终将成为一种产品的公司.为了帮助我解释,想象一下类似于下面的文件结构:

- Parent Directory
     - Project_1
           - /src/
           - /target/
           - POM.xml
     - Project_2
           - /src/
           - /target/
           - POM.xml
Run Code Online (Sandbox Code Playgroud)

在此过程中,我们使用JUnit对我们的代码进行单元测试,这是一个重要的合同要求,我们通过测试实现了超过一定百分比的代码覆盖率阈值.

我们使用JaCoCo以HTML网站的形式生成覆盖率报告.JaCoCo本身被证明是非常宝贵的,但我们遇到的一个主要问题是,这会在/target/site/jacoco/目录下创建一个站点.

我自己做了一些调查,发现除非我弄错了,否则JaCoCo默认不支持将多个Maven项目融合到一个JaCoCo报告中的能力.

所以我的问题是,任何人都可以建议一个替代解决方案 - 这将允许我们将多个报告聚合到一个Web服务器上吗?

我们有一个选择是将所有站点移动到Web服务器上的单个文件夹中,然后将索引页面链接在一起,但它最多只是"笨拙".例如:

- Web Server
     - index.html
     - Project_1
           - (Generated report files)
     - Project_2
           - (Generated report files)
Run Code Online (Sandbox Code Playgroud)

任何更好的建议将不胜感激.

Luc*_*ens 5

截至今天,JaCoCo并未提供一种简单的方法.但是,它们确实指定了三种替代方案:https://github.com/jacoco/jacoco/wiki/MavenMultiModule

他们最合适的方法是创建一个单独的报告模块,其中包含所有其他模块的依赖关系(在github文章中称为策略:具有依赖关系的模块).

记者模块使用jacoco:report-aggregate(http://www.eclemma.org/jacoco/trunk/doc/report-aggregate-mojo.html)maven目标来获取所有单个报告并将它们绑定在一起.

一个示例项目:

https://prismoskills.appspot.com/lessons/Maven/Chapter_06_-_Jacoco_report_aggregation.jsp