代码之家  ›  专栏  ›  技术社区  ›  Marco

如何使用cobertura来检测多项目Maven 2?

  •  2
  • Marco  · 技术社区  · 15 年前

    我的Maven2项目由几个子模块组成。它是由包含和EJB、WAR和JAR子模块组成的。现在,我想用仪器测量包装好的耳朵,它包含了上面提到的所有子模块。

    例子:

    Interface Maven Project consists of several modules:
    - InterfacePOM --> parent pom
    - InterfaceEAR --> EAR module which does not actual code but is the packaging for Domain, EJB and WAR
    - InterfaceEJB --> EJB module
    - interfaceWAR --> WAR module
    - interfaceDomain --> JAR module
    

    当使用cobertura时,我可以成功地检测所有不同的独立模块,但每个模块生成一个.ser文件。有没有一种方法可以同时检测一个Enitre EAR文件?所以结果将是一个.ser文件,我可以使用它吗??

    3 回复  |  直到 12 年前
        1
  •  3
  •   Community Dan Abramov    7 年前

    简短回答: (看看 this previous answer 了解更多详细信息)。你需要一个像 dashboard (事实上,不要用它,看我以前的答案) XRadar Sonar 汇总报告。但在这方面,声纳显然是胜利者(这项工程太棒了),我毫不犹豫地推荐它。退房 Nemo ,它们的公共实例,获取任何项目,并查看代码覆盖率的向下钻取(例如 Apache CXF )了解它能做什么。

    更新: 似乎我错过了最初问题的要点,所以我正在相应地更新我的答案。基本上,我现在把这个问题理解为“如何用cobertura测量耳朵”,这确实是一个完全不同的故事。

    不幸的是,虽然 cobertura 能用仪器测量耳朵、合成孔径雷达、拉链、战争、罐子,我不认为 cobertura-maven-plugin 支持这个现成的,它可能是一个更好的选择使用cobertura的Ant任务与Antrun插件。见 MCOBERTURA-86 ,这个 thread 而这 discussion 关于这个的更多背景(和Antrun示例)。

    tbh,在构建生命周期、打包、报告等方面,您要做的确实不容易,而且由于缺少来自cobertura插件的支持,这将是一项艰巨的任务。我真的会考虑两次(投资使整个事情运作的时间与产生的价值相比),或者考虑花费时间(理解金钱)来获得三叶草许可证(这可以更好地支持这一点)。

        2
  •  3
  •   Akhil Jain Thedaego    12 年前

    我现在根据您之前关于Maven2的回答实现了一个解决方案。它仍然不是很容易使用,但到目前为止它还可以。具体实施如下:

    1。 修改了我的父pom以在提供特定配置文件时生成cobertura检测类。 .ser 文件和已检测的类。

    2。 通过使用maven资源插件,已检测的类被复制到/target/classes文件夹中,因此实际的打包使用已检测的类。

    三。 因为没有模块宽度 塞尔 文件我手动组合这些 塞尔 来自EJB、WAR、JAR和EAR文件的文件,使用由cobertura提供的命令行解决方案。 coberture-merge.bat/.sh

    4。 部署 塞尔 将文件保存到我的jboss容器中,并部署仪表化EAR。

    5。 在测试之后,我对合并后的 塞尔 文件和声音……好像有用……

    我肯定会研究Clover,因为实现的解决方案有些手动。

        3
  •  1
  •   matt b    15 年前

    看起来cobertura maven插件中没有将单个项目中的.ser文件合并到单个报表中的任务。

    出现了一个谷歌搜索 this feature request and patch 用于插件添加合并任务,但它看起来不被接受。 One of the comments 建议使用 the dashboard plugin 为了完成同样的事情,你可能会取得一些成功。