在 CI 服务器上运行 Maven 构建时,我生成站点来发布文档和报告,并将工件部署到快照存储库以供其他项目使用。为此,我设定了以下目标:
mvn clean site deploy
这意味着单元测试已运行twice,一次用于站点生命周期,一次用于部署生命周期。如果我将站点目标配置为绑定到标准生命周期,测试仍然会运行两次,运行站点目标总是会导致测试运行,因为@requiresDependencyResolution 测试注解。如果您只创建站点,这很好,但在部署的上下文中,它会大大增加构建时间,但没有任何好处。
我有一个解决方法,涉及将 SiteMojo (和所需的父级)复制到新插件并删除@requiresDependencyResolution 测试副本中的注释。
这个修改后的魔力将生成报告,而不会强制再次运行测试,但我更喜欢一个不涉及对网站插件进行任何黑客攻击的解决方案。有没有办法抑制 requireDependencyResolution 注释?
我很惊讶这有效 -@requiresDependencyResolution test
标签实际上并不会触发正在构建的测试 - 这应该是您包含的报告之一。通常,我建议在 CI 中单独的 Maven 执行中运行站点和构建,这样您就可以获得有关构建的快速反馈,并仅在成功时发布最新站点。
另一种选择是将其运行为mvn clean deploy site
,并选择report-only
魔力surefire-report-maven-plugin
(这通常是再次运行测试的报告)。这将使用之前的测试结果。当然,另一种选择是完全禁用该报告,因为无论如何您都可能从其他来源(例如 CI 服务器)获得这些结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)