java - 如何知道 SCM 中更改了哪些 Maven 模块?
问题描述
想象一下,我有一个具有以下结构的 Maven 项目:
-- Client (Used as dependency in other projects to communicate with Server)
---- pom.xml
-- Common (Domain module with classes used by both Client and Server)
---- pom.xml
-- Server (Actual application that is deployed and served in production)
---- pom.xml
pom.xml
服务器和客户端都依赖于 Common。
我正在寻找一个解决方案,我的 CI 解决方案 (Jenkins) 能够评估自各自的构建上次成功构建以来我的 SCM 中的任何子模块是否有任何更改(不确定跟踪最后一次成功构建的最佳方法构建,也许使用 git 标签)。这是因为我的管道中每个模块都有不同的行为,并且我不想在只更改一个时不必要地运行所有这些。我期望的行为如下:
- 如果客户端已更改,请安装客户端模块并部署到远程 Nexus。(Client 的着色过程中已经包含了 Common 模块,所以不需要也部署那个)。
- 如果服务器已更改,请安装服务器模块并将其部署到生产服务器的着色过程中也已经包含通用模块)
- 如果更改了 Common,请安装 Client 和 Server 的模块并部署它们。
我在 pom.xml 中更新服务器模块的版本无关紧要,但我确实需要跟踪客户端模块中的版本(因为它在其他项目中用作依赖项)。
解决方案
推荐阅读
- javascript - 如何使用 Admin SDK 为数据库触发器设置 firebase FCM
- php - 如何在 Laravel 的客户注册视图中列出我的外键?
- kubernetes - Helm函数根据变量设置值?
- java - 交换链表节点
- r - R 如果发生某些情况,则填充 data.table 中的前导值和滞后值
- java - 根据请求参数从 REST 控制器返回 XML 或 JSON
- kubernetes - Kubernetes kubeadm 初始化失败
- node.js - 使用 .find() 时的 mongodb 问题
- numpy - 为什么 GPflow 的 Scipy 优化器与使用 tf.function 装饰优化步骤不兼容?
- reactjs - 为什么组件状态更新但视觉效果没有更新?