【发布时间】:2013-03-25 16:40:43
【问题描述】:
我有一个使用 Maven 构建的 Java 项目,它聚合了多个组件,每个组件都在自己的 Maven 项目中。这些组件中的任何一个都可以单独发展。
我的项目结构可以描述如下:
- my-main-project 依赖于:
- my-component-1
- my-component-2
- 等
现在,所有 pom.xml 都使用“快照”版本,因此,它们都使用我的存储库中可用的“最新”版本。
但是一旦我将发布版本发送给我的客户,我应该冻结版本并在我的源代码控制中创建一个 TAG(或等效项),以便在维护时恢复以前的状态。
所以,我的问题是:我是否应该在每次发布之前更改所有 pom.xml 文件,为组件提供版本号,并将所有内容与此依赖版本联系起来?另外,如果我有很多组件(我的项目当前有 30 多个小子组件),我是否必须在每次发布之前重新编号/还原每个组件?当单个组件演变时(由于错误修复或增强),我必须增加其版本以使更改不会影响预先存在的版本,对吗?
使用 maven 的人通常如何处理这种多组件版本控制的情况?
当然,我可以只依靠我的版本控制标签来恢复到以前的时间点,并在每个版本上标记每个组件,但我不喜欢这种方法,因为依赖版本控制(带有maven) 让我对打包的内容以及(损坏的)兼容性关系等有更多的控制和可见性。
【问题讨论】:
-
只是好奇,您是否已经查看了 maven-release-plugin 提供的开箱即用功能并发现它不适合您?
标签: java maven versioning