如何与Hudson持续集成Maven 3多模块项目?

时间:2014-01-14 15:45:11

标签: maven continuous-integration hudson

我目前的印象是,使用Hudson(或Jenkins)对Maven 3多模块项目 well 进行CI是不可能的。

情况似乎是您有2个与Hudson构建多模块Maven 3项目的现实选择:

  1. 自由式项目也可以构建Maven项目,并且使用增量/递归选项,它显然应该能够处理仅构建完整项目树的必要子树。

  2. 遗留的,严重弃用的,有很多警告,Maven2 / 3遗留版本。

  3. 使用第一个选项存在明显的缺点,即您的整个项目看起来像Hudson中的一个大blob,没有单个子项目的可见性,并且没有选项来构建单个子项目及其依赖项。

    使用第二个选项,您必须基本上吞下很少的信念,引发关于遗产的警告,并且不要使用"为了找出答案,它将构建您的多模块项目,但触发子项目构建的功能完全被破坏,并且无意修复此问题。

    我能想到的唯一选择是恢复Maven 2以在服务器上构建,在这种情况下,遗留插件似乎可以工作,甚至可以触发单个子项目构建。但后来我被困在Maven 2上。

    我发现我的要求相当保守,但我完全被哈德森/詹金斯缺乏Maven支持所困扰。这就是我的期望:

    • 识别多模块项目并使用Maven 3构建它们的能力
    • 能够拥有"增量"这样一个多模块项目的构建(即只更改了模块及其依赖项)
    • 能够查看多模块项目的当前状态以及哪个子模块失败/成功/不稳定

    有问题的Maven项目包含大约84个Maven模块,这些模块采用多模块配置,具有公共父级和拆分为不同的子系统。我们正在使用Hudson 3.1.0。

    我有机会实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

是的,使用当前的Maven 2/3项目类型是不可能的。

我已经使用矩阵/多配置项目类型做得足够好,并手动添加“模块”轴。矩阵作业的配置很麻烦,您必须记住在添加,删除或重命名模块时更新轴。但是一旦配置完成,此解决方案适用于构建。您可以单独查看每个模块的构建和测试结果,也可以在矩阵作业下集成。

答案 1 :(得分:0)

我的同事一直致力于在Jenkins中实现Maven 3多模块功能。

https://github.com/adamcin/maven-plugin

不确定上游接受状态是什么。