Java的持续集成以及对遗留项目的支持?

时间:2009-07-28 15:00:07

标签: java continuous-integration

我知道哈德森与CC的问题已被打败(讨论)致死,但我会从一个不同的角度提出一个问题:他们中的哪一个(或者可能是完全不同的CI产品)适合传统项目

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

  • 不应报告超过X的类缺失的单元测试(或者甚至更好,在单独的字段中报告并且应该导致构建中断)
  • 应报告早于X的代码中的静态分析器(例如FindBugs)发现的错误(或如上所述 - 单独报告/不应破坏构建)

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

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

2 个答案:

答案 0 :(得分:2)

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

Hudson只是进行构建并运行单元测试。它没有报告覆盖范围,代码质量等。

然后使用

Sonar来收集和显示代码指标。 Sonar可以轻松查看每个包的指标细分。因此,使用命名约定很容易看出代码是否旧并且代码覆盖率目标较低,findbugs等。

重要的是,它也有非常好的趋势指标,因此无论是旧代码还是新代码,您都可以看到指标是否朝着正确的方向发展。在许多方面,这是关键点 - 重要的方向!

答案 1 :(得分:1)

我是Hudson The Continuous Integration Game plugin的忠实粉丝,因为它促进了使用findbugs,添加和修复javadoc并修复了你得到的任何警告。您还可以将其设置为新单元测试的分数。

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