代码之家  ›  专栏  ›  技术社区  ›  Grey Panther

Java的持续集成与遗留项目的支持?

  •  1
  • Grey Panther  · 技术社区  · 17 年前

    我知道哈德逊和CC的问题已经被击败(讨论过),但我会从另一个角度提出一个问题:哪一个(或完全不同的CI产品)适合遗留项目?

    我特别需要的是在某个日期之前过滤掉问题的可能性。希望能使这一点更清楚的一些例子:

    • 不应报告在x之前的类上丢失的单元测试(或更好的方法,在单独的字段中报告,并应导致构建中断)
    • 应该报告静态分析器(例如findbugs)在x之前的代码中发现的错误(或者如上所述-单独报告/不应该破坏构建)

    理由:人们不可能仅仅为了创建100%的单元测试覆盖率和修复/分析findbugs报告的所有错误而停止他们正在进行的任何开发。更可接受的解决方案是确保 进一步的 问题出现了,当有人接触历史阶级时,他们就解决了。我想要一些产品/项目,可以为这种情况生成适当的报告/警告。

    有没有这样的通用/预配置解决方案,或者我需要从头开始构建它(例如,为现有的一个CI解决方案添加自定义插件)?

    2 回复  |  直到 17 年前
        1
  •  1
  •   sal    17 年前

    我非常喜欢 The Continuous Integration Game plugin 对于Hudson,因为它促进了findbugs的使用,添加和修复了javadoc,并修复了任何警告。您也可以设置它为新的单元测试打分。

    我为一些遗留代码库设置了这个,有些是为JDK1.3编写的Swing应用程序。拥有一个改进旧代码的评分系统就像拥有自己的开发团队一样。

        2
  •  2
  •   Pablojim    17 年前

    对于同样的问题,我采用的方法是:

    Hudson只需进行构建并运行单元测试。它不报告覆盖范围、代码质量等。

    Sonar 然后用于收集和显示代码度量。声纳可以很容易地看到每个包的指标分解。因此,使用命名约定可以很容易地查看代码是否旧,以及代码覆盖率、findbugs等目标是否较低。

    重要的是,尽管它也有很好的趋势度量,所以不管它是旧代码还是新代码,您都可以看到度量是否朝着正确的方向发展。在很多方面,这是关键点——它的方向很重要!