【问题标题】:Maven site generation that shows sites of previous versions显示以前版本的站点的 Maven 站点生成
【发布时间】:2014-08-18 16:48:41
【问题描述】:

Maven 的 site:site 功能让我可以访问有关当前版本的代码和测试质量的报告,但我希望查看以前的版本并进行比较以确定以下方面的改进:

  • 测试覆盖率
  • 问题
  • 代码复杂度等
  • 文档

无需记住或记笔记。

我假设没有 maven 报告工具可以在版本之间在 SCM 中维护某种状态,从 pom 中的每个报告中收集元数据并将其存储到文件中。这将要求每个报告在构建期间使用标准化机制提供关键数据。

我想的一种方法就像 Apache 如何处理他们的一些 java 项目,例如http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/index.html 版本内置于站点结构中。

【问题讨论】:

  • 假设您将 site:site 作为构建的一部分运行,一个持续集成服务器(如 jenkins)会这样做

标签: java maven reporting


【解决方案1】:

生成站点时,您指定项目的 URL,如下所示:

<project>
  ...
  <distributionManagement>
    <site>
      <id>www.yourcompany.com</id>
      <url>scp://www.yourcompany.com/www/docs/project/</url>
    </site>
  </distributionManagement>
  ...
</project>

如果您将项目 url 参数化为在路径中包含唯一值(如时间戳、内部版本号等),则将在每次运行中使用唯一路径生成站点:

<project>
  ...
  <distributionManagement>
    <site>
      <id>www.yourcompany.com</id>
      <url>scp://www.yourcompany.com/www/docs/project/${BUILD_NUMBER}</url>
    </site>
  </distributionManagement>
  ...
</project>

【讨论】:

  • 这看起来像我要走的路。它提出了一个问题,即该站点包含多少 MB 的文档(目前为 10MB)以及构建运行的频率(大约每天一次)。所以看起来这个策略每 3 个月左右会产生大约 1 GB 的数据。听起来很合理。
【解决方案2】:

有一些插件可以将源代码与以前的版本进行比较,例如 clirr-maven-pluginjdiff-maven-plugin。但是,您想要的要复杂得多。我建议看看SonarQube,这是当今最流行的方式。

【讨论】:

  • SonarQube 看起来令人印象深刻,但我是大海中的一条小鱼,而大鱼目前都迷上了 Fortify。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 2021-12-27
  • 1970-01-01
  • 2018-03-02
  • 2020-04-13
  • 1970-01-01
相关资源
最近更新 更多