如何拆分 git repo 并应用 Maven 子模块和 Maven 父模块?

Ben*_*ema 2 git maven

我需要一些关于如何配置多个 repo 的建议,以便它们共享一个 Maven 父级,并且还被配置为 Maven 根项目中的子模块。

我正在维护开源项目Simple Java Mail,并且随着可选功能变得越来越大,我计划将项目拆分为子模块,每个子模块都在自己的 GIT 存储库中。

  1. 我首先关心的是应该有一个共享的Maven 父配置来处理所有默认测试和构建配置以及默认测试和实用程序依赖项。这是我能想到的一个额外的回购。
  2. 接下来,为了使用相同的版本号轻松构建和发布所有内容,我认为设置Maven 子模块会很有用。如何在 GIT 存储库中进行设置?我的第一个想法是定义子模块的主/根 Maven 项目的另一个 repo,然后在同一文件夹中检出这个和所有其他 repo,主 Maven 项目将找到具有..\submodule-xyz相关文件夹的模块项目。

我以前配置过类似的设置,但这都在一个存储库中(在过去的 Subversion 时代)。任何人都可以请教如何通过拆分回购来最好地解决这个问题吗?最好我有一个用于父 pom 和主/根 pom 的仓库(这很常见吗?)。最好与 git 子模块结合使用吗?

Von*_*onC 7

术语模块在这里有点过载。

是的,您可以在一个 repo 中定义一个父 pom,声明一个多模块 maven 项目,每个模块引用一个子文件夹。

这些子文件夹可以通过git submodule add命令创建,引用每个子项目版本化的远程存储库。
子文件夹相对于父目录的根文件夹,但不需要../.

每个子模块 repo 都可以有自己的pom.xml,它将主项目 pom 作为父 pom 引用。