【发布时间】:2011-06-02 19:51:57
【问题描述】:
在版本控制、发布和 osgi 包方面,我找不到我的多模块 maven 项目的最佳实践,
首先是版本控制和发布。我的项目有 5-6 个子模块和 200+ jar 所以想使用聚合,
案例一:不指定项目版本,使用父版本
-
在这种情况下,如果我使用 maven 版本 插件标记和 pom.next 是 好的开发(好的意味着jar3 将始终使用最新版本的 jar1 与自身相同)但是 如果我需要发布补丁怎么办 仅适用于 jar1 吗?我怎么能做到 make relase(它说不能释放 由于未发布的项目 依赖父项:0.0.2-SNAPSHOT) 如果我设法释放 jar1 0.0.1.1,jar3怎么用jar1的补丁版?
父项目(0.0.1-快照)
模块 1
罐子1
罐子2
模块2
罐子3
(依赖)[Jar1(project.version),Jar2(project.version)]
罐子4
(依赖)[Jar1(project.version),Jar3(project.version)]
案例2:在父pom的属性文件中指定jar版本可能是个好主意
-
在这种情况下,当使用发布插件时 不幸的是,当我检查 pom.next 我 看到 jar 版本和 依赖版本恢复为 硬编码而不是属性 (jar1.version) 以便下一步 发布我将无法使用 属性,第二个问题是 即使我设法解决了第一个问题 maven 发布插件不变 属性,所以下一个版本将使用 来自属性的未修改版本
父项目
属性
jar1.version
jar2.version
jar3.version
jar4.version
模块 1
jar1(jar1.version)
jar2(jar2.version)
模块 2(0.0.1-快照)
jar3(jar3.version)
(依赖)[Jar1,Jar2]
Jar4(0.0.1-快照)
(依赖)[Jar1,Jar3]
我有点困惑,没想到发布和补丁程序会那么困难,用maven管理这种需求的最佳方法是什么
【问题讨论】:
标签: maven-2 maven-release-plugin multi-module