[英]Maven artifact version for patches
我目前正在為Project Dash開發Maven工具 。 其中一個懸而未決的問題是如何處理錯誤。
Maven Central說:沒有任何出版物發生變化。 這是因為Maven從未試圖弄清楚版本是否發生了變化(與SNAPSHOTs不同)。
但我可能不得不創建一個新的“發布版”,例如Eclipse 3.6.2的一部分。 我應該使用哪個版本號? 3.6.2.1
, 3.6.2-1
, 3.6.2_1
, 3.6.2pl1
? 為什么?
版本號的約定是major.minor.build
。
當公共接口更改不兼容時, major
會增加。 例如,刪除方法或更改其簽名。 使用您的庫的客戶端在使用具有不同主要版本的庫時需要小心,因為事情可能會中斷。
當公共接口以兼容的方式更改時, minor
會遞增。 例如,添加了一種方法。 客戶不需要擔心使用新版本,因為他們習慣看到的所有功能仍然存在並且行為相同。
當函數的實現發生更改時, build
會增加,但不會添加或刪除任何簽名。 例如,您發現了一個錯誤並修復了它。 客戶端可能應該更新到新版本,但如果它不起作用,因為它們依賴於破壞的行為,它們可以輕松降級。
這里棘手的問題是,它聽起來像是在修改由其他人編寫和發布的代碼。 這里的慣例,因為我已經看到了,是要么與postfix的版本號-yourname-version
或只是- version
。 例如, linux-image-2.6.28-27
可能是Ubuntu內核映像的名稱。
然而,由於Maven使用破折號來區分偽影坐標,我建議(非常啰嗦地,顯然)只是添加.version
以避免混淆它。 所以3.6.2.1
在這種情況下。
這是因為Maven從未試圖弄清楚版本是否發生了變化
在我看來,這不是基本原因。 原因是未來可靠的構建。 您可以在pom中定義版本,就是這樣。 如果有人從maven中心刪除工件或者更改現有工件會變得更糟,那么您無法確定您的構建將來是否會正常工作......或者舊版本可以正常工作。
版本號取決於你...我建議使用3.6.2.1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.