Я хотел бы высказать мнение о терминологии. Другие ответы дали хорошие объяснения о том, что такое «снимок» версии в контексте Maven. Но следует ли из этого, что версия без снэпшота должна называться версией выпуска?
Существует некоторая напряженность между идеей семантического управления версиями "релизной" версии, которая может показаться любой версией, которая не имеет спецификатора, такого как -SNAPSHOT
, но также не имеет спецификатора, например -beta.4
; и идея Maven о «релизной» версии, которая, похоже, включает в себя отсутствие -SNAPSHOT
.
Другими словами, существует семантическая двусмысленность того, означает ли «выпуск» «мы можем выпустить его для Maven Central» или «программное обеспечение находится в окончательном выпуске для общественности». Мы могли бы рассмотреть -beta.4
как «релизную» версию, если мы выпустим ее для общественности, но это не «финальная версия». Семантическое управление версиями ясно говорит, что что-то вроде -beta.4
является «предварительной версией», поэтому не имеет смысла называть ее «релизной» версией, даже без -SNAPSHOT
. На самом деле по определению даже -rc.5
является релизом кандидат , а не реальным релизом, хотя мы можем разрешить публичный доступ для тестирования.
Так что, несмотря на это, Maven, на мой взгляд, более уместно назвать только «релизную» версию, в которой вообще нет спецификатора, даже не -beta.4
. Возможно, лучшим названием для версии без снимков Maven будет «стабильная» версия (вдохновленная другой ответ ). Таким образом, мы получили бы:
1.2.3-beta.4-SNAPSHOT
: снимок версии предварительной версии.
1.2.3-SNAPSHOT
: снимок версии выпуска.
1.2.3-beta.4
: стабильная версия предварительной версии.
1.2.3
: версия выпуска (очевидно, это стабильная версия без снимков).