我使用一个maven模块'foo-common'。我目前正在使用SNAPSHOT版本。我希望在这个模块发生任何变化时,它的版本会使用jenkins中的build-number进行增加,并将其部署到远程存储库。 但是,问题是,如果我的当前版本是1.0.40-SNAPSHOT,然后如果我想增加主要版本,那么版本将变为2.0.41-SNAPSHOT,这没有任何意义。 有人可以提出一个更好的方法吗?增量maven模块版本
1
A
回答
0
Maven使用两个概念:要么有快照要么发布。这些名称具有高度的误导性,我会相应地调用它们:temporary_candidate和permanent_version。
快照似乎是版本化的,但是如果您使用存储库(如Nexus等),您会注意到快照仅用于保留最近几次迭代,其中旧快照会快速删除。同样,在下载快照时,很明显,预期的用途是始终使用最新的。发布永久保存;预计这些发行版将按版本号下载。
版本号不适用于开发人员。它是开发人员和测试人员以及部署团队和最终用户之间的通信设备。
测试人员报告“复制此错误:(1)部署版本2.0.44-SNAPSHOT,(2)单击XYZ按钮”是没有意义的。该报告在“2.0.44-SNAPSHOT”部分被打破,因为它不是真实的版本号,测试者应该预计“2.0.44-SNAPSHOT”下面的代码已经改变,现在有完全不同的错误。而且每次重新部署时都会发生变化。
预期的用途是仅在存在正在进行的对话时才向测试者/用户显示SNAPSHOT。一旦情况消失,你就会释放。
詹金斯有一个非常有用的发布插件。它允许更改版本号并执行所有发布任务(包括但不限于maven release pluigin)。
0
maven的想法是你使用mvn release插件将版本从SNAPSHOT移动到发布版本。
所以,如果你没有(假设你有正确的POM):
mvn release:prepare release:perform
这将删除快照发布的版本中,在你的榜样,这将是1.0.40,那么它会标记这个版本在使用标签进行源代码管理时,它会将完成的工件推送到标签中定义的发布存储库,然后将版本移动到下一个SNAPSHOT,在您的情况下它将是1.0.41-SNAPSHOT。
如果你想做一个主要的版本发布版本,你应该在mvn版本上手动移动版本:set 1.1.0-SNAPSHOT。
相关问题
- 1. Maven Multi模块版本
- 2. 增加依赖模块版本是否应递增父模块版本?
- 3. Jenkins/Git增量Maven项目版本
- 4. Maven自动增量发布版本
- 5. Maven的模块版本 - 最佳实践
- 6. 更新多模块Maven项目中模块的版本号
- 7. 在maven测试版本中为多模块maven项目忽略模块
- 8. Maven不应该增加项目版本
- 9. DNN模块版本
- 10. API模块版本
- 11. CMake目标版本增量
- 12. 什么是更新多模块Maven项目模块版本的最佳stategy
- 13. maven模块构建。不指定具有儿童模块的版本
- 14. 如何使用版本Maven插件更新从属同级模块的版本
- 15. maven版本依赖注入到子模块
- 16. 在多模块项目失败时执行maven版本
- 17. 发布单个模块使用Maven版本插件
- 18. 更新多模块Maven项目的版本
- 19. 检查依赖性版本在多模块Maven项目
- 20. 模块版本不匹配
- 21. Maven多模块
- 22. Maven的版本
- 23. Java的Atomic类的模块化增量
- 24. 黑莓Java开发 - 增量版本号
- 25. 的MSBuild自动增量版本 - TFS2010
- 26. 使用Hudson build增量版本号
- 27. 使用gradle任务的版本增量
- 28. HTML附加增量版本号
- 29. MonoTouch的自动增量内部版本号版本号为
- 30. Git多个版本分支,构建自动增量版本号
目前我正在使用Jenkins Artifactory插件来推送快照。如果我使用这个插件,那么我的应用程序如何从Artifactory下载最新版本?我的意思是,如果artifactory中有foo-common-1.0.10和1.0.11,那么在执行构建时,我的应用程序应该从artifactory下载最新的foo-common – humblebee
@ falcon01 [如何告诉maven使用最新版本以及为什么人们反对它)](http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the-latest-version-of-a-dependency) – kubanczyk