Maven 2 在子项完成后对父项执行目标

Maven 2 在子项完成后对父项执行目标,maven-2,cruisecontrol,Maven 2,Cruisecontrol,我有一个多模块maven项目(几个嵌套级别)。通常,当我执行maven构建(比如mvn安装或其他什么)时,maven将在继续子项目之前运行父项目的所有目标 我希望能够定义一个在父对象上运行的目标,但在处理完所有子对象之后才能这样做。有办法做到这一点吗 具体地说,我想做的是运行一个exec:exec目标,它沿着文件系统递归查找测试结果文件,并将它们复制到一个中心位置,以便我们的CI系统(cruisecontrol)进行聚合。因此,这个问题的替代解决方案也很受欢迎:) 更新:我忘了提到一个要求:无论

我有一个多模块maven项目(几个嵌套级别)。通常,当我执行maven构建(比如
mvn安装
或其他什么)时,maven将在继续子项目之前运行父项目的所有目标

我希望能够定义一个在父对象上运行的目标,但在处理完所有子对象之后才能这样做。有办法做到这一点吗

具体地说,我想做的是运行一个
exec:exec
目标,它沿着文件系统递归查找测试结果文件,并将它们复制到一个中心位置,以便我们的CI系统(cruisecontrol)进行聚合。因此,这个问题的替代解决方案也很受欢迎:)


更新:我忘了提到一个要求:无论构建是否成功,我都需要运行exec目标。

我认为在多模块构建结束时不可能从父级执行操作(这不是事情的工作方式)。但是,您是否考虑根据所有子项目添加一个模块(可以是POM类型)(因此它将是一个反应堆构建中的“最后一个”项目),并在这个模块中运行<代码> Exc:Exc<?我可能遗漏了一些东西,因为我不明白为什么这不起作用。

为什么不在每个子项目的验证阶段附加一个antrun复制步骤,将结果复制到父位置。然后,您可以在父级中使用类似的步骤来执行CI聚合

或者,您可以让每个子项目使用simliar技术进行自己的CI集成


我们通常使用该技术为jar生成websphereejb存根,以及其他一些东西。

听起来更像是一个报告插件。创建Maven插件实际上非常简单。

根据其他答案和我自己随后的调查,我所描述的Maven插件似乎不可能实现

然而,我能够解决我的问题,尽管解决方案是针对cruisecontrol的。基本上,我将exec目标绑定到pre-site阶段,然后在cruisecontrol配置中将pre-site指定为
sitegool
sitegool
在主目标之后运行,并且无论构建是否成功都会这样做


我想其他CI系统也会提供类似的功能。

关于更新,难道这不是CI工具的责任吗?这在基本情况下有效,但在模块为Spring Boot应用程序等情况下会失败。这些都不是很好的依赖关系。