多模块项目中的maven-release-plugin,每个模块都有单独的git仓库

4
我想知道在每个模块都有自己的git仓库的多模块项目中是否可以使用maven-release-plugin。类似这样:
parent/
  .git/
  pom.xml
module1/
  .git/
  pom.xml

我设置了一个简单的测试(在Linux下),但“git add”命令失败了(简化后):

cd parent && git add -- pom.xml /.../module1/pom.xml

错误信息为:
fatal: /.../module1/pom.xml: '/.../module1/pom.xml' is outside repository

我知道这个git命令不能工作。maven-release-plugin能否为每个存储库执行单独的“git add”命令?
假设答案是否定的:假设我只有一个git存储库。使用扁平结构还是嵌套结构有关系吗?
还有其他选项用于自动版本控制/发布和保留多个git存储库吗?
2个回答

2
自从 Maven-release-plugin 2.0-beta-5 版本开始,他们添加了一个新的属性叫做 commitByProject。在我的情况下(恰好也是你的情况),这个属性让我们能够按项目提交每个子模块(使用 'git submodule add' 策略从根 pom 引用)。这样就能完成工作了!
执行命令:mvn release:prepare -DcommitByProject=true

0

你可以使用git子模块在你的git仓库中包含其他git仓库。但是,如果你的module1通过maven依赖于parent(即<parent>或parent具有dependencyManagement),那么module1似乎并不是一个独立的模块,我认为它不应该有自己的仓库。

关于层次结构,我更喜欢嵌套的结构,以便更容易地查看父级和模块。


1
子模块似乎不是一个选项:我收到了“致命错误:路径规范'module1 / pom.xml'在子模块'module1'中”。 - Henning
你当时想要做什么? - crea1
1
我设置了一个示例:就像在我的初始问题中一样,但现在module1作为git子模块嵌套在parent中。在parent中执行“mvn release:prepare”将导致引用的错误消息。如果您的问题更多地是为什么我不使用单个存储库:代码当前在svn下,每个模块都有自己的主干,分支,...我们的开发人员习惯于只看到他们正在工作的项目的历史记录,我有点担心如果不同模块的提交混合/干扰,他们会感到困惑。 - Henning

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