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

时间:2014-06-13 09:00:06

标签: git maven-release-plugin

我想知道是否可以在多模块项目中使用maven-release-plugin,其中每个模块都有自己的git存储库?像这样:

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 个答案:

答案 0 :(得分:1)

自从maven-release-plugin 2.0-beta-5开始,他们添加了一个名为commitByProject的新属性,在我的情况下(恰好是您的情况),我们可以根据每个项目来提交每个子模块(从root pom引用)使用“ git submodule add”策略)。这样就完成了工作!

MVN版本:prepare -DcommitByProject = true

答案 1 :(得分:0)

您可以使用git子模块在git存储库中包含其他git存储库。但是如果你的module1依赖于parent到maven(即<parent>或者父有dependencyManagement),那么似乎module1实际上不是一个独立的模块,不应该拥有它自己的存储库在我看来。

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