如何从Subversion触发多模块Maven构建中的单个模块的Jenkins构建?

12

我在Jenkins中设置了一个大型的Maven多模块构建。它已经设置为增量构建。

触发时,它解析所有POM并确定需要构建的内容。

目前它被设置为在SCM更改时触发。

我想使此构建满足以下要求:

  • 仍然可以手动启动。当我这样做时,它的增量构建行为将像今天一样工作。
  • 从Subversion提交钩子触发构建。我希望知道如果我通过优秀的说明 设置提交挂钩,它不会导致构建去做与事实无关的额外工作,而是告诉它发生了什么变化。

我提到第二点是因为根据我的查看文档,它似乎只是触发一般的构建让它自己运行。(我可能错了。)我更愿意它告诉Jenkins确切地发生了什么变化,并且Jenkins知道这些更改的存储库路径映射到哪些模块,这样Jenkins就不必进行轮询或额外的pom.xml解析来找出它。

我准备让经历过这场战争的人告诉我,看,只需设置Subversion提交挂钩,这就是你能得到的最好结果,但我问这个问题是因为是否有更好的解决方案。

2个回答

4

在使用Maven 3构建时,Jenkins似乎还没有这个功能。

具体详情请参考Jenkins官网


您可以尝试打开项目并从左侧菜单中选择模块,但它并不会构建该模块的完整树形结构。因此,它是无用的。 - Xdg
截至2021年,它似乎已经在Jenkins 2.7中实现并向前推进。还有其他人可以验证修复程序是否已经生效,并且是否按预期工作吗? - tom_mai78101

1
你尝试过在项目配置的“构建”部分中使用“增量构建-仅构建更改的模块”选项吗?在这种情况下,存储库将通知Jenkins提交的更改,SCM插件将检出文件,而Maven插件将尝试猜测哪些模块需要重新构建。在我的环境中,它在大多数情况下都有效,尽管它并不是100%可靠的。

谢谢;是的;我广泛使用那个。不过,很遗憾它并不完全相同。 - Laird Nelson
那就是现在唯一的事情了。在多模块项目中,您可以转到右侧导航菜单中名为“模块”的部分,并尝试重新运行任何模块。但在我的情况下 - 即使这样也不总是有效... - Łukasz Rżanek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接