我目前正致力于Maven tools for Project Dash。其中一个悬而未决的问题是如何处理错误。
Maven Central说:没有任何出版物发生变化。这是因为Maven从未试图弄清楚版本是否发生了变化(与SNAPSHOTs不同)。
但我可能不得不创建一个新的“发布版”,例如Eclipse 3.6.2的一部分。我应该使用哪个版本号? 3.6.2.1
,3.6.2-1
,3.6.2_1
,3.6.2pl1
?为什么呢?
答案 0 :(得分:14)
版本号的约定是major.minor.build
。
major
会递增。例如,删除方法或更改其签名。使用您的库的客户在使用具有不同主要版本的库时需要小心,因为事情可能会中断。
minor
会递增。例如,添加了一种方法。客户不需要担心使用新版本,因为他们习惯看到的所有功能仍然存在并且行为相同。
build
会递增,但不会添加或删除任何签名。例如,您发现了一个错误并修复了它。客户端应该更新到新版本,但如果它不起作用,因为它们依赖于破坏的行为,它们很容易降级。
这里棘手的问题是,听起来你正在修改由其他人编写和发布的代码。正如我所看到的,这里的惯例是使用-yourname-version
或只是 - version
对版本号进行后缀。例如,linux-image-2.6.28-27
可能是Ubuntu内核映像的名称。
由于Maven使用破折号来区分神器坐标,但我建议(非常啰嗦地,显然)只需添加.version
以避免混淆它。在这种情况下3.6.2.1
。
答案 1 :(得分:1)
Maven项目版本指定为this。
<major version>.<minor version>.<incremental version>-<qualifier>
由于您不想更改版本号,因此您需要限定符。我不知道是否有关于限定符名称的一般建议。春天的人,例如做了this
之类的事情2.5.6.SEC01
2.5.6.SR02
3.0.0.M3
他们没有使用连字符/破折号符号来分隔限定词。
无论你做什么,你都必须小心版本的订购!看看我添加的第一个链接。
更新:另请查看@krzyk对最近更改/添加内容的评论。
答案 2 :(得分:0)
这是因为Maven从未尝试过 弄清楚一个版本是否有 改变
在我看来,这不是基本原因。原因是未来可靠的构建。您可以在pom中定义版本,就是这样。如果有人从maven中心删除工件或者更改现有工件会变得更糟,那么您无法确定您的构建将来是否会正常工作......或者旧版本可以正常工作。
版本号取决于你......我建议使用3.6.2.1。