簡體   English   中英

補丁的Maven工件版本

[英]Maven artifact version for patches

我目前正在為Project Dash開發Maven工具 其中一個懸而未決的問題是如何處理錯誤。

Maven Central說:沒有任何出版物發生變化。 這是因為Maven從未試圖弄清楚版本是否發生了變化(與SNAPSHOTs不同)。

但我可能不得不創建一個新的“發布版”,例如Eclipse 3.6.2的一部分。 我應該使用哪個版本號? 3.6.2.13.6.2-13.6.2_13.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項目版本等指定

<major version>.<minor version>.<incremental version>-<qualifier>

由於您不想更改版本號,因此您需要查找限定符 我不知道是否有關於限定符名稱的一般建議。 春天的人們做了類似的事情

2.5.6.SEC01
2.5.6.SR02
3.0.0.M3

他們沒有使用連字符/破折號表示法來分隔限定詞。

無論你做什么,你必須小心版本的訂購! 看看我添加的第一個鏈接。

更新 :另請參閱@krzyk對最近更改/添加的評論。

這是因為Maven從未試圖弄清楚版本是否發生了變化

在我看來,這不是基本原因。 原因是未來可靠的構建。 您可以在pom中定義版本,就是這樣。 如果有人從maven中心刪除工件或者更改現有工件會變得更糟,那么您無法確定您的構建將來是否會正常工作......或者舊版本可以正常工作。

版本號取決於你...我建議使用3.6.2.1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM