我想知道是否可以在多模块项目中使用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存储库?
自从maven-release-plugin 2.0-beta-5以来,他们添加了一个名为commitByProject的新属性,在我的情况下(恰好是你的情况)让我们为每个项目提交每个子模块(使用'git submodule add'策略从root pom引用)。这就完成了工作!!
mvn release:prepare -DcommitByProject = true
您可以使用git子模块在git存储库中包含其他git存储库。但是如果你的module1
通过maven依赖于parent
(即<parent>
或者parent具有dependencyManagement),那么似乎module1并不是一个独立的模块,在我看来不应该拥有它自己的存储库。
关于层次结构我更喜欢嵌套的更容易看到父和模块。