【问题标题】:Cobertura plugin for grails 2.3.9 does not workgrails 2.3.9 的 Cobertura 插件不起作用
【发布时间】:2025-12-02 23:45:02
【问题描述】:

我有一个使用 cobertura 插件的 grails 2.3.7 项目,它运行良好。

但是当我升级到 2.3.9 时它停止工作了。

这是我得到的堆栈跟踪的一些相关部分。

Error Cobertura: Error reading from object stream.
java.lang.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.PackageData
...
Cobertura: Coverage data file /home/user/cobertura.ser either does not exist or is not readable.  Creating a new data file.

【问题讨论】:

  • 你试过用 grails clean 清理项目吗?
  • @luisZavaleta 是的,我做过很多次。
  • 在你的 BuildConfig 文件中检查插件的版本,有些插件的参数是相对于版本的,例如: -- runtime ":hibernate:$grailsVersion" -- 可以使用 grails 2.2 但是不适用于 grails 2.3。

标签: grails cobertura


【解决方案1】:

来自grails-coverage-plugin当前版本(2.0.3-1)的信息页面:

This plugin will generate code coverage reports using Cobertura.

 Currently Grails Forked mode is not supported.

您应该从Build.config 中删除分叉选项。只删除测试选项就足够了。

【讨论】:

  • 我已经尝试删除测试分叉模式,但错误仍然存​​在。这是 grails 2.3.9 上的问题吗?
  • 尝试在BuildConfig.groovy 上评论所有grails.project.fork 部分。
  • 现在看来已经修复了。更新到最新版本。