如何在 Maven 子模块中使用 Git 子模块?

3

我想分享一个在使用git子模块的项目之间共享服务的方法。 该项目结构类似于以下内容:

contacts project
  ├  security module (shared, uses common security DB)
  ├  contacts dao module
  ├  contacts web module 
  └  contacts api module

products project
  ├  security module (shared, uses common security DB)
  ├  products dao module
  ├  products web module
  └  products api module

accounts project
  ├  security module (shared, uses common security DB)
  ├  accounts dao module
  ├  accounts web module
  └  accounts api module

一般来说,这是一个微服务架构,每个项目都是完全自包含的,并且有它自己的Git仓库。唯一不同的部分是共享的安全数据库(非我选择)。我想开发一个共享的安全服务,并将其作为git子模块(一个将另一个仓库版本化映射为子文件夹的方法)与所有微服务项目共享。

Git子模块将包含一个Maven子模块,可以在每个多模块Maven项目中包含它。

我的问题是Maven子模块POM文件中的父引用。

  <parent>
    <groupId>com.org.project</groupId>
    <artifactId>project-a-artifact</artifactId>
    <version>1</version>
  </parent>

因为Maven POM包含对其父级的显式引用,我看不到任何实现我想要的方式。
有什么建议吗?

3
我不理解为什么你想把一个 Maven 子模块也变成 git 子模块。Maven 已经为你处理了所有的依赖关系。如果你想检查依赖库的源代码,为什么不直接克隆第三方库呢?这样可以保持你的工作空间更加清洁。我错过了什么吗? - brianrobt
你能详细阐述一下你的问题是什么吗?说实话,我并不理解你的问题。 - khmarbaise
更新了帖子并添加了更多信息,希望这样解释得更清楚了。 - Eli Pulsifer
1个回答

1
答案不是使用maven子模块。只需在另一个git仓库中创建共享服务作为独立的maven项目。将该项目作为git子模块添加到目标项目中,并根据需要从父pom和其他子模块引用它。
这将设置正确的构建依赖关系,但共享项目不会继承任何来自父pom的内容。

1
你介意用图示方式解释一下吗? - Andreas Baaserud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接