生成Cobertura覆盖率报告时,Hudson构建失败并出现NoClassDefFoundError

时间:2013-02-19 03:21:31

标签: maven hudson cobertura

我在与Hudson和Maven一起制作Cobertura报告时遇到了问题,我希望这里有人可以找到解决方案。

我可以看到,当hudson构建我的项目时会生成cobertura工件。但是,当我配置我的hudson项目以发布Cobertura覆盖率报告时,我发现构建失败并出现以下错误:

Publishing Cobertura coverage report ...
Publishing Cobertura coverage results ...
FATAL: org/jfree/chart/axis/CategoryAxis
java.lang.NoClassDefFoundError: org/jfree/chart/axis/CategoryAxis
  at hudson.plugins.cobertura.CoberturaXmlHandler.startDocument(...)

构建输出显示Java版本为1.6.0_38

如果我配置我的项目以便不生成Cobertura覆盖率报告,那么构建成功。

在hudson上安装了以下插件:

  • Findbugs(版本4.41-h-2)
  • Checkstyle(版本3.28-h-1)
  • Cobertura(1-6-h-1版本)
  • 静态分析收集器(版本1.28-h-1)
  • 静态分析实用程序(版本1.42-h-1)
  • Maven 3 Build(版本3.0.0)

使用以下maven命令:

  • clean install findbugs:findbugs checkstyle:checkstyle cobertura:cobertura

有关如何解决此问题的任何建议?

1 个答案:

答案 0 :(得分:1)

您还需要安装JFreeChart plugin,这是在cobertura中生成图表所需的(这就是为什么在运行cobertura时没有找到异常的原因)但是它有来自main的been removed哈德森分布:

  

(JFreeChart ...)移动到外部插件。可从Alpha版本获得。任何   使用JFreechart的外部插件需要添加依赖项   这个外部插件可以保持兼容性。供将来制图   需要BIRT图表现在捆绑为核心插件

编辑:传递依赖中存在一个错误,如here所示。 安装cobertura-plugin版本1.6-h-3。 mvn