Является ли 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. Так что то, что сказали члены вашей команды, правда.

Другие вопросы по тегам