使用surefire报告插件的Maven多模块项目应该生成聚合报告



我研究了很多,但仍然没有找到令人满意的解决方案。我有一个多模块maven项目,希望从surefire插件生成的surefire报告中生成一个聚合报告。就其本身而言,一切都在工作,除了我必须运行两次构建过程

要求只运行一次。有什么想法吗?

project (aggregator and parent POM)
|- module1
|- module2
|- module3
|- moduleX

我知道问题的背景(maven在子项目之前创建根项目的报告,因此聚合在第一次运行时返回空),但几乎所有(1、2、3、4)状态都只是为了重新运行构建过程。(SO上的一些帖子也指向这个方向)唯一有用的帖子是分离聚合器和父pom。然而这只是我的最后手段。如何在一次maven运行中获得聚合报告,还有其他想法吗?

澄清:运行两次构建过程意味着调用

  1. mvn-clean-install-surefire-report:report(完成后再次调用它)
  2. mvn clean install surefire报告:报告

  1. mvn清理站点(并在其完成后再次调用它)
  2. mvn清洁场地

在第一次运行中,聚合报告是空的,因为它是在每个其他项目之前生成的(由于反应堆的构建顺序),所以没有一个子模块具有必要的surefire txt/xml文件。在第二次运行中,由于使用了第一次运行的surefire报告,因此聚合报告生成良好。

以下是我的猜测:

如果你得到

[INFO] Skipped "Surefire Report" report (maven-surefire-report-plugin:2.22.0:report-only), file "surefire-report.html" already exists.

在你的第一次跑步和第二次跑步中,包括重新创建target/site的内容,然后你会得到你描述的效果。

http://bartswennenhuis.nl/maven-aggregate-reports-for-multi-module-projects/

另一方面,准确地描述了你所看到的需要运行两次目标的情况:

mvn verify site
mvn site:site site:stage

最新更新