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

标签 maven build jenkins maven-3 pom.xml

我有一个关于如何设置 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/

相关文章:

java - 将包导入到同一个maven项目的其他模块中

java - 使用 Maven 的 Eclipse 动态 Web 项目在 mvn tomcat7 :run 上抛出错误

java - 如何将应用程序属性文件处理到 Ant 构建脚本中?

python - 在 Mac OS X 10.6 上重新安装 Python 2.6

jenkins - Jenkins 管道可以有一个可选的输入步骤吗?

java - 我如何依赖来自 Maven 的一组版本中的所有 Artifact ?

java - kafka.server.KafkaServerStartable - java.lang.OutOfMemoryError : Java heap space

android - 如何将构建特定的配置注入(inject) APK?

jenkins - 在 weblogic 12.1.13 上安装 Jenkins 2.121.2

docker - 将生成的WAR部署到glassfish