我如何简化这种 maven 多项目(即反应堆)方法?
How can I simplify this maven multi-project (i.e., reactor) approach?
假设我有许多 Github 使用 Maven 多模块项目(即反应器)连接的回购协议,具有这样的依赖树...
A
B
C
D
F
G
...和这样的 pom 结构:
- <parent><version>1-SNAPSHOT...
GitHub repo A - pom.xml - <artifactId>A</artifactId><version>2-SNAPSHOT...
- <dependencies><X><version>3-SNAPSHOT...
- <modules><module>B</module></modules>
- <parent><version>1-SNAPSHOT...
GitHub repo B - pom.xml - <artifactId>B</artifactId><version>2-SNAPSHOT...
- <dependencies><Y><version>3-SNAPSHOT...
...
如果有人更新 C(例如,添加新的 Java 方法)并执行 mvn deploy
,我想自动(即持续集成 (CI))重建两个 A B 使用 C 的最新版本。为成功实现这一点,我可以使用 Jenkins Pipeline Maven Plugin (PMP),这样当有人更新 C 时,Jenkins 会触发 B 的构建,最终触发 A-- 按此顺序。在构建这些存储库时,maven 使用私有 Maven 存储库为 C、B 和 A 下载最新的 SNAPSHOT。
现在假设我有一个新要求:删除 PMP。
问题:通过删除PMP,如果有人更新C,PMP 不会重建A,所以A 不能自动使用它。但是另外一个要求是A必须使用最新版本的C。
问题:我该如何解决或改进这个问题?
如果您总是想使用最新版本并重建所有内容,我会将所有这些 git 存储库移至一个并使用多模块项目。
假设我有许多 Github 使用 Maven 多模块项目(即反应器)连接的回购协议,具有这样的依赖树...
A
B
C
D
F
G
...和这样的 pom 结构:
- <parent><version>1-SNAPSHOT...
GitHub repo A - pom.xml - <artifactId>A</artifactId><version>2-SNAPSHOT...
- <dependencies><X><version>3-SNAPSHOT...
- <modules><module>B</module></modules>
- <parent><version>1-SNAPSHOT...
GitHub repo B - pom.xml - <artifactId>B</artifactId><version>2-SNAPSHOT...
- <dependencies><Y><version>3-SNAPSHOT...
...
如果有人更新 C(例如,添加新的 Java 方法)并执行 mvn deploy
,我想自动(即持续集成 (CI))重建两个 A B 使用 C 的最新版本。为成功实现这一点,我可以使用 Jenkins Pipeline Maven Plugin (PMP),这样当有人更新 C 时,Jenkins 会触发 B 的构建,最终触发 A-- 按此顺序。在构建这些存储库时,maven 使用私有 Maven 存储库为 C、B 和 A 下载最新的 SNAPSHOT。
现在假设我有一个新要求:删除 PMP。
问题:通过删除PMP,如果有人更新C,PMP 不会重建A,所以A 不能自动使用它。但是另外一个要求是A必须使用最新版本的C。
问题:我该如何解决或改进这个问题?
如果您总是想使用最新版本并重建所有内容,我会将所有这些 git 存储库移至一个并使用多模块项目。