我有一个像这样的maven多模块项目
modA
modB
modC
modD
custom-pom.xml
这里是pom
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xx.xx.correspondence</groupId>
<artifactId>xxHudsonTP</artifactId>
<version>1</version>
<packaging>pom</packaging>
<modules>
<module>modA</module>
<module>modB</module>
</modules>
</project>
现在,当我调用release:branch时,意图在custom-pom.xml上创建一个分支,如此
mvn release:branch -DbranchName=new-branch -f custom-pom.xml
它最终创建了一个包含所有4个模块的分支。
是否有任何方法可以使用release插件来确保只选择的模块是分支的,而无需单独分支每个模块。
任何其他maven插件..?
被修改 这个问题的背景源于这样一个事实:我正在使用的svn repo有大约20个不同的模块,它们需要生成4个不同的工件。我可以轻松地将模块分组到子文件夹中,但由于一些模块之间很常见 文物,我没有想太多分裂它们。
据我所知,分支所有模块都很简单,可能很容易管理,但团队中的其他开发人员都有这种处理过多的感觉,无法完成简单的任务,比如一行修复bug。希望有所帮助。
答案 0 :(得分:0)
据我所知,没有解决方案可以回答你的问题。
您必须记住,多模块项目(聚合)意味着每个子模块共享相同的应用程序生命周期。这真的目的是什么模块和聚合。
我看到2个不同的解决方法。
在你的4个子模块中确实有2组,比如group1:A和B,第2组,C和D.
将它们分成两个新项目:
Group1
|-- Project A
| `-- pom.xml
|-- Project B
| `-- pom.xml
`-- pom.xml
Group2
|-- Project C
| `-- pom.xml
|-- Project D
| `-- pom.xml
`-- pom.xml
Pro:您可以分别对第1组和第2组进行分支。 缺点:您将无法再对每个项目执行同步操作(在一个命令中)(如重新安装或构建它们)
情况可能就是这样。由于您非常了解项目的基础架构,因此您可能只想分支1个或2个子模块。所以,你不想处理太多的conf / artifacts / time build ......确实,所有这些原因都可能产生你不会看到的间接影响。始终建立整个项目!
如果这是为了节省空间(但是大多数SCM允许你以很少的空间进行分支,就像Yorkw所说的那样),因为你的SCM只允许你获得子模块(也许两者都可以,比如Clearcase)...抱歉,没有解决方案。这是maven的方式,我认为这是好的方式。 (好吧,这有点蛊惑人心,但我真的相信我所说的)
请不要犹豫,向我们解释为什么您真的只想分支模块的一部分。如果还有其他原因,您可能会有更准确的解决方案。< / p>