maven - 构建依赖项时如何使 Jenkins 触发依赖项目的构建

我有一个关于如何设置 Jenkins 和 maven 3 的简单问题。

为了简单起见,假设我们有四个项目:

模型没有依赖
Commons,取决于型号
Server 依赖于 Common 和 Model
前端,取决于模型

我想要实现的是,在 Model 上成功构建会触发所有项目的新构建,这些项目在其 pom 中依赖于 Model(此处为 Common、Server 和 Frontend)

如果 Common 失败,则无需构建 Server。

在上述情况下,我似乎可以通过在 Model 和 Commons 上手动设置依赖项目来解决这个问题,但是这些信息已经可以在每个项目(服务器和前端)的 pom 文件中找到,这让我得出结论/希望Jenkins 应该能够自己解决这个问题。

Jenkins 可以通过解析 Jenkins 中定义的每个项目的 pom 来推断依赖树,并自动执行某种最佳构建顺序/依赖处理,还是我必须设置“上游项目构建时 block 构建”和“构建之后其他项目已建成[依赖项目列表]”,如上所述?

我正在使用 Jenkins 版本 1.473 和 Maven 3。
我们的 maven 项目 pom 不使用父标签或模块标签。

/本杰明

最佳答案

假设您想坚持使用 4 个单独的构建而不是多模块构建,那么这样做的方法是在 4 个项目中的每个项目中选中构建触发器下的框

“在构建 SNAPSHOT 依赖项时构建”

然后你对Model进行checkin,jenkins基于SVN轮询启动该项目的构建,当构建完成时,它看到common对model有依赖,所以它会触发common的构建,看它是否仍然根据更新的模型构建。

必须将 jenkins 作业创建为 maven 作业才能显示此选项。它不适用于自由样式项目,即使它们运行的​​脚本恰好调用了 maven。

https://stackoverflow.com/questions/12174112/

相关文章:

ios - 项目构建并运行,但不存档

tfs - 调用执行程序时发生异常 'executor://xunit/VsTestRunner2/

json - 从位于内存中的 JSON 加载启动配置

msbuild - 如何从外部文件中读取属性值?

build - 如何存储 CMake build设置

java - 通过 Ant 编译 GWT

delphi - 在 Delphi XE 中构建事件宏

c++ - 列出使用的库的链接器选项

c++ - qt 构建系统中的 jom 是什么?如何从命令行调用 jom 来构建 qt 项目?

visual-studio-2008 - 仅构建启动项目的键盘快捷键?