Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Maven 3多模块项目与Hudson进行持续集成?_Maven_Continuous Integration_Hudson - Fatal编程技术网

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

如何为Maven 3多模块项目与Hudson进行持续集成?,maven,continuous-integration,hudson,Maven,Continuous Integration,Hudson,我目前的印象是,使用Hudson(或Jenkins)为Maven 3多模块项目进行CI是不可能的 目前的情况似乎是,您有两个现实的选择,可以与哈德逊一起构建多模块Maven 3项目: 自由式项目也可以构建Maven项目,使用增量/递归选项,它显然应该能够只构建完整项目树的必要子树 Maven2/3遗留版本,严重弃用,带有大量警告 使用第一个选项有一个明显的缺点,即您的整个项目看起来像哈德逊河中的一个大水滴,在各个子项目上没有可见性,也没有构建各个子项目及其依赖项的选项 对于第二个选项,您基本上必

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

目前的情况似乎是,您有两个现实的选择,可以与哈德逊一起构建多模块Maven 3项目:

  • 自由式项目也可以构建Maven项目,使用增量/递归选项,它显然应该能够只构建完整项目树的必要子树

  • Maven2/3遗留版本,严重弃用,带有大量警告

  • 使用第一个选项有一个明显的缺点,即您的整个项目看起来像哈德逊河中的一个大水滴,在各个子项目上没有可见性,也没有构建各个子项目及其依赖项的选项

    对于第二个选项,您基本上必须接受很少关于遗留和“请勿使用”的引人信任的警告,以便发现是的,它将构建您的多模块项目,但触发子项目构建的功能完全中断,并且无意修复此问题

    我能找到的唯一替代方法是在服务器上恢复到Maven 2进行构建,在这种情况下,遗留插件似乎可以工作,甚至可以触发单个子项目构建。但是我被困在Maven 2上了

    我发现我的要求相当保守,但我完全被哈德逊/詹金斯缺乏Maven支持所阻碍。以下是我所期望的:

    • 能够识别多模块项目并使用Maven 3进行构建
    • 能够对此类多模块项目进行“增量”构建(即,仅更改模块及其依赖项)
    • 能够查看多模块项目的当前状态以及哪个子模块失败/成功/不稳定
    讨论中的Maven项目由大约84个Maven模块组成,这些模块采用多模块配置,有一个共同的父级,并分为不同的子系统。我们使用的是哈德逊3.1.0


    我有机会做到这一点吗?

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


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

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


    不确定上游验收状态是什么。

    您正在运行哪个版本的Jenkins/Hudson?我们正在使用Hudson 3.1.0,已添加到帖子中。感谢您确认我的理智。:)手动配置模块是我希望阻止的。你知道有什么工具可以生成相关的配置吗?不知道。我也不知道还有谁做过这个,所以可能没有这样的工具。您可能可以创建一个作业来为您构建或更新矩阵作业,快速查看这些作业表明这是可能的,但我从未尝试过。我刚刚找到了答案;将这一点与实际情况结合起来可能更容易。