Maven версия артефакта для патчей - PullRequest
6 голосов
/ 18 марта 2011

В настоящее время я работаю над инструментами Maven для Project Dash . Один из открытых вопросов - как справляться с ошибками.

Maven central говорит: ничего не публикуется, ничего не меняется. Это потому, что Maven никогда не пытается выяснить, изменился ли выпуск (в отличие от SNAPSHOT).

Но мне, возможно, придется создать новый «релиз», скажем, части Eclipse 3.6.2. Какой номер версии мне использовать? 3.6.2.1, 3.6.2-1, 3.6.2_1, 3.6.2pl1? Почему?

Ответы [ 3 ]

14 голосов
/ 18 марта 2011

Соглашение для номеров версий: major.minor.build.

major увеличивается при несовместимости открытого интерфейса. Например, метод удален или его сигнатура изменена. Клиенты, использующие вашу библиотеку, должны соблюдать осторожность при использовании библиотеки с другой основной версией, потому что что-то может сломаться.

minor увеличивается при совместном изменении открытого интерфейса. Например, добавлен метод. Клиентам не нужно беспокоиться об использовании новой версии, так как все функции, которые они привыкли видеть, по-прежнему будут работать и действовать одинаково.

build увеличивается при изменении реализации функции, но сигнатуры не добавляются и не удаляются. Например, вы нашли ошибку и исправили ее. Клиенты, вероятно, должны обновиться до новой версии, но если это не сработает, поскольку они зависят от неисправного поведения, они могут легко понизить версию.

Сложная проблема в том, что кажется, что вы модифицируете код, написанный и выпущенный кем-то другим. Соглашение здесь, как я видел это, состоит в том, чтобы добавить к номеру версии после -yourname-version или просто - version. Например, linux-image-2.6.28-27 является вероятным именем образа ядра Ubuntu.

Поскольку Maven использует тире для различения координат артефактов, я бы порекомендовал (по-видимому, очень многословно) просто добавить .version, чтобы не спутать его. Так что 3.6.2.1 в этом случае.

1 голос
/ 18 марта 2011

Версии проекта Maven указываются как this .

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

Поскольку вы не хотите менять номер версии, вы ищете квалификатор . Я не знаю, есть ли общие рекомендации по названию квалификатора. Весенние люди, например сделал что-то вроде это

2.5.6.SEC01
2.5.6.SR02
3.0.0.M3

Они не использовали нотацию дефис / тире для разделения классификатора.

Что бы вы ни делали, вы должны быть осторожны при заказе версий! Посмотрите на первую ссылку, которую я добавил.

Обновление : также посмотрите @krzyk комментарий для последних изменений / дополнений.

0 голосов
/ 18 марта 2011

Это потому, что Maven никогда не пытается выяснить, изменился ли релиз

Это, на мой взгляд, не основная причина.Причина в том, чтобы иметь надежные сборки в будущем.Вы определяете версии в вашем пом и все.Если кто-то удалит артефакты из maven central или станет хуже, изменив существующий артефакт, вы не можете быть уверены, что ваша сборка будет работать в будущем ... или более старая сборка подойдет.до вас ... я бы предложил использовать 3.6.2.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...