通常mvn:release prepare
将(除其他事项外)
它运作良好。但是,我们有一种新的工作方式:
branches/features
分支trunk
必须只有发布版本我们希望发布如下工作:
features
features
到trunk
的合并。 trunk
中的任何内容都不应该保存,这不会是一个问题,因为那里不应该做任何工作。换句话说,在发布时,trunk应该镜像发布版本trunk
的标签应该已经制作在SVN中看起来像这样:(R =发行版,S = SNAPSHOT版)
1.0.1-SNAPSHOT
|
| 1.0.2-SNAPSHOT
| |
| | 1.0.3-SNAPSHOT
| | |
| | | 1.0.4-SNAPSHOT
| | | |
| : : | | : : : : |
features S-S-S-R--S--R-S-S-S-S-S-R-S->
| | |
\|/ \|/ \|/
V V V
trunk ------R-----R-----------R--->
| | |
\|/ \|/ \|/
V V V
tag ------R-----R-----------R--->
| | |
| | |
1.0.1 | 1.0.3
|
1.0.2
答案 0 :(得分:0)
是的,发布插件似乎接近您想要做的?我不确定你的问题是什么?
令人眼前一亮的是,躯干中的内容似乎有些含糊不清,不应该有什么。你需要小心不要开始对抗maven:
“ - SNAPSHOT”表示工作版本 - 我知道您知道:)
由于您处理功能分支并合并到将成为工作版本的主干。从这里开始,您需要集成所有功能并验证它们是否协同工作。这就是为什么trunk会有SNAPSHOT版本。
完成此操作后,您可以使用release插件从此处标记/分支。
因为树干必须反映你实际交付的东西(稳定的分支,所以说)。我认为创建一个临时分支可能有助于保持清晰:你可以创建一个用于集成功能分支的“开发者”分支。一旦没问题,将这些更改合并到您的主干中。
主要是你会关注http://nvie.com/posts/a-successful-git-branching-model/ (如果在这里使用SVN,也可以使用SVN)
请注意,功能分支也有一些缺点:http://martinfowler.com/bliki/FeatureBranch.html
来自Neil Ford的3集视频。在Episode 2中,他提供了一些功能分支的替代方案。
回到maven:你需要在你的主干上有一个SNAPSHOT版本,发布插件不会像其他任何东西一样。没有SNAPSHOT的回购中唯一的东西是在标签上。那些版本是固定的。任何维护分支也将有一个SNAPSHOT版本(一个独特的版本)。功能分支通常与他们将要合并的目标分支共享版本。注意:CI服务器不应将“mvn deploy”或“mvn install”功能分支放入公共共享存储库。