鉴于:多模块Maven项目
任务:每次发布后更新版本
我看到了两种不同的策略:
策略1 - 整个更新:更新所有模块的版本,尽管事实上是否有更新
策略2 - 简约更新:仅更新实际受影响的模块版本
假设我们有以下项目结构:
root
---dao
---domain
---web
---site1
---site2
---processors
---processor1
---processor1Service
---processor1Util
---processor1Tests
---processor2
---processor2Service
---processor2Util
---processor2Tests
---simulators
---simulator1
---simulator1Service
---simulator1Util
---simulator1Tests
---simulator2
---simulator2Service
---simulator2Util
---simulator2Tests
---etc
所有父pom都有包装类型 - pom。所有最终模块都有资源生成类型 - jar,war,sar等。 Root pom包含 dependencyManagement 部分,其中列出了所有子模块。
策略1:
策略2:
RM合并来自“功能”分支的更新
所有持续整合的事情都在发生(让他们没问题)
策略1:
好处:
缺点:
策略2:
好处:
缺点:
请分享您的意见。如何在大型项目中处理此问题,例如springframework的
答案 0 :(得分:2)
就个人而言,我绝对会选择你的策略1.这就是我所工作的公司使用的策略。您提到的硬盘空间或升级模块版本不需要升级的副作用与“版本动物园”相比是次要问题。
在您使用OSGI架构的情况下,只有我会投票选择您的策略2,这需要非常精确的模块版本控制策略,如果您一次升级所有版本,它将毁掉OSGI的最大好处(热门 - 仅部署需要更新的模块/子模块。
我还建议你看看http://java.dzone.com/articles/why-i-never-use-maven-release,它提供了如何在多模块maven项目中升级版本以及如何在任何CVS中跟踪的良好提示