【问题标题】:Hudson build failing with NoClassDefFoundError when generating Cobertura coverage report生成 Cobertura 覆盖率报告时,Hudson 构建失败并出现 NoClassDefFoundError
【发布时间】:2013-02-03 15:36:01
【问题描述】:

我在使用 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 构建(版本 3.0.0)

使用以下maven命令:

  • 全新安装 findbugs:findbugs checkstyle:checkstyle cobertura:cobertura

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

【问题讨论】:

    标签: maven hudson cobertura


    【解决方案1】:

    您还需要安装 JFreeChart plugin,它是在 cobertura 中生成图表所必需的(这就是该类在运行 cobertura 时未发现异常的原因),但它具有来自主要 hudson 发行版的 been removed

    (JFreeChart ...) 移至外部插件。可从 Alpha 版本获得。任何 使用 JFreechart 的外部插件需要添加对 这个外部插件保持兼容性。对于未来的图表 BIRT Charts 现在捆绑为核心插件

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

    【讨论】:

    • 感谢您的回复。根据我的 Hudson 插件管理器,JFreeChart 插件(1.4 版)已经安装。
    • 仍然,根据异常找不到 jfreechart jar 中的类之一,请检查您的类路径
    • 我没有明确设置类路径:我安装 JDK 1.6.0_38,将 Tomcat 作为服务安装,在 Tomcat 中安装 Hudson WAR,然后将 Hudson 配置为使用 Cobertura 和其他插件。也许Tomcat或JDK中某处的jar文件与插件中的jfree jar冲突?如果是这样,我不确定如何解决这个问题......
    • 我已经升级到 cobertura 插件 1.6-h-3 ... 现在似乎可以工作了。谢谢。
    猜你喜欢
    • 2011-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多