Является ли SNAPSHOT или не SNAPSHOT конвенцией для библиотек и Maven при создании релиза для использования другими?
Я исключаю это из вопроса о выпуске trunk против ветки, потому что это отдельная проблема.
Предполагая, что вы завершили свою итерацию разработки и выпускаете релиз, который другие люди могут использовать в своих проектах.
Теперь некоторые члены моей команды говорят:
SNAPSHOT предназначен для итерации в вашей команде, а не SNAPSHOT - для реальных выпусков.
Но когда я смотрю на плагин реактора и связанный с ним комментарий - кажется, он говорит обратное:
Вы только должны выпустить версии SNAPSHOT. Это означает, что номер вашей версии будет похож на 3.0.3-SNAPSHOT.
Мой вопрос: является ли SNAPSHOT или не SNAPSHOT конвенцией для библиотек и Maven при создании релиза для использования другими?
2 ответа
См. Maven: полный справочник, 3.3.1. Версии проекта:
Версии SNAPSHOT
Версии Maven могут содержать строковый литерал для обозначения того, что проект в данный момент находится в активной разработке. Если версия содержит строку "-SNAPSHOT", Maven развернет этот токен [...] при установке или выпуске этого компонента.
...
Зачем тебе это использовать? Версии SNAPSHOT используются для проектов в стадии активной разработки. [...], если в следующем выпуске вашей системы будет версия "1.4", ваш проект будет иметь версию "1.4-SNAPSHOT", пока она не будет официально выпущена.
...
Выпуская проект, вы должны разрешить все зависимости версий SNAPSHOT с зависимостями выпущенных версий. Если проект зависит от SNAPSHOT, он нестабилен, так как зависимости могут меняться со временем. [...] SNAPSHOT версии предназначены только для разработки.
[Подчеркивает мной.]
Это значит для меня:
Из технического POV можно выпустить любую версию, снимок или нет. Но (технически) выпущенная версия снимка не является (формально) выпущенной версией из семантического POV.
SNAPSHOT
назначается, когда разработка находится в стадии разработки, после завершения разработки нам нужно выпустить, тогда ваша версия не будет включать SNAPSHOT
, Вы можете проверить это в Интернете. Нет банка, который мы используем для общего назначения, не содержит SNAPSHOT
, В конце они все являются релизами GA (General Available).
Пример: spring-data-mongodb-1.9.2.RELEASE. Так что то, что сказали члены вашей команды, правда.