我有一个关于如何设置 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。
关于maven - 构建依赖项时如何使 Jenkins 触发依赖项目的构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12174112/