是否可以将maven-release-plugin与特定版本一起使用?

cri*_*nge 6 maven continuous-delivery

我正在考虑使用SVN,Jenkins和Maven的部署管道.目前我被困在我通常会打电话mvn release:perform给工作副本的那一刻.

在考虑部署管道时,我想创建一个管道,其中每个提交都可用于释放软件以进行测试/生产.假设我有5个版本,我决定将版本3(带有修订版3)发布到生产中.已经有2个新的提交到trunk(现在是修订版5).

是否可以maven-release-plugin在版本3中使用checkout/build/tag/commit版本?当maven-release-plugin完成释放时,它通常会将修改后的POM提交到trunk.

我对这里的任何信息或建议感到高兴,所以请随时给我指点书籍(如http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912),博客文章,Jenkins文档......也许我完全走错了路.

nwi*_*ler 2

默认情况下,发布插件根据工作副本的内容创建发布,它只是确保在此之前您没有任何未提交的内容。AFAIK 它不会强制更新源,因为这通常是持续集成系统的工作(在你的例子中是 Jenkins)。因此,詹金斯检查过的任何内容都将被发布。

您尝试做的事情听起来更像是 Jenkins 端的配置更改,将其指向正确的修订版。

另一方面,如果 POM 文件作为发布的一部分进行了修改,但同时在 SVN 中进行了更改,那么当 Maven 想要签入修改后的 POM 文件时,就会遇到冲突。这种情况可能会发生,具体取决于您希望如何进行发布。

基于此,在发布之前始终创建一个分支可能更有意义。因此,您将基于修订版 3 创建一个分支,然后在该分支中创建您的版本。这样,您就不会遇到提交在最近的修订中已更改的资源的问题。

创建分支并检查它也可以通过 Jenkins 和 Maven 自动化。