Показывают ли метаданные артефакта Maven, является ли артефакт стабильной версией?

Позволяют ли артефакты Maven или их метаданные, развернутые в удаленном репозитории, надежно определить, является ли артефакт стабильной версией?

Снапшоты имеют суффикс SNAPSHOT, однако есть также альфа-, бета-версии и предварительные версии, и названия не обязательно совпадают, например:

https://mvnrepository.com по-разному выделяет нерелизные версии, но может просто ищет по определенным ключевым словам?

(источник)

В связи с этим возникает вопрос: как вы определяете стабильную версию?

khmarbaise 23.12.2020 20:13

В Maven SNAPSHOT часто не используют SNAPSHOT в качестве суффикса... у них всегда есть суффикс...

khmarbaise 23.12.2020 20:14

@khmarbaise, я исправил неверное утверждение о снимках, спасибо. Я бы сказал, что именно создатель артефакта определяет его стабильность. Должна быть причина, по которой создатель решил выпустить что-то как «бета», а не как полную версию, и я предполагаю, что это (еще не всесторонне проверенная) стабильность.

Marcono1234 23.12.2020 21:18

Я могу сказать, что для maven-surefire-plugin версии 3.0.0-M5 я использую его в производстве ... я называю его достаточно стабильным ... достаточно проверенным? Плагины и т. д. имеют большие наборы тестов... Мне бы 2500 тестов? ci-builds.apache.org/job/Maven/job/maven-box/job/maven-suref‌​ire/… с моей точки зрения очень хорошо...

khmarbaise 23.12.2020 22:37

@khmarbaise Re «у них всегда есть суффикс ...» - это относится только к локальному репозиторию Maven. В удаленных репозиториях, управляемых диспетчером репозиториев, снимки обычно имеют метку времени + квалификатор последовательности, например. Nexus: «, где фактическое используемое число состоит из метки даты/времени и счетчика ».

Gerold Broser 24.12.2020 00:18

@GeroldBroser Просто неправильно, это определяется только менеджером репозитория ... извне вы всегда запрашиваете -SNAPSHOT ... Отметка времени + #. сделано только для того, чтобы их можно было хранить на стороне сервера и предотвращать коллизии... Maven ничего не знает о метке времени и т. д. Maven знает только -SNAPSHOT...

khmarbaise 24.12.2020 10:36

@khmarbaise Из Maven-пуриста вы правы. Но в среде разработки есть (намного) больше, чем просто Maven. Вот что я хотел выразить.

Gerold Broser 24.12.2020 14:21

Все инструменты справляются с этим таким образом... они развертывают либо релизы, либо SNAPSHOT, а менеджеры репозитория самостоятельно обрабатывают вещи для хранения и т. д. Я знаю, что есть гораздо больше, чем Maven, например BuildR, SBT, Kobalt, Ant, Gradle, Buck, Bazel и т. д., и это лишь некоторые из них...

khmarbaise 24.12.2020 14:43
Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
8
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

См. Справочник по POM , в котором есть подробные пояснения о номерах версий, начиная с раздела Спецификация требований к версии зависимостей:

Если строки версий синтаксически правильны Semantic Versioning 1.0.0 номеров версий, то почти во всех случаях сравнение версий следует правилам приоритета, изложенным в этой спецификации. [...]

[...]

Когда строки версии не соответствуют семантическому управлению версиями, требуется более сложный набор правил. [...] Это дает последовательность номеров версий (числовых токенов) и квалификаторов версий (нечисловых токенов) с «.» или "-" префиксы.

Итак, alpha1, beta2, M5, rc-2, RC1 это:

а) для «предварительной версии [...], обозначаемой добавлением произвольной строки сразу после версии исправления и тире». в соответствии с пунктом 4. Спецификации семантической версии (SemVer)

б) все квалификаторы для (предварительных) выпусков, а не снимков, где M означает этап.

С точки зрения содержания вы можете доверять создателям артефакта только в том, что они использовали правильный квалификатор, который представляет фактический статус артефакта.

Спасибо, справочник POM был наиболее полезным, поскольку он определяет: «за исключением следующих токенов, которые идут первыми в этом порядке», для которых порядок SemVer не применяется. На самом деле они перечисляют все примеры, которые у меня были в моем ответе.

Marcono1234 24.12.2020 00:59

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

Пропустить выполнение плагина сонара, если тесты maven пропущены
Kotlin/Java – несуществующая ссылка в аннотации Java для параметра свойства компиляции конструктора
Как добавить один файл в существующую версию временной метки моментального снимка в Sonatype Nexus
Не удается запустить программу «C:\Program Files (x86)\Java\jdk1.8.0_11\jre\bin\java.exe»: ошибка CreateProcess = 206, имя файла или расширение слишком длинное
Разверните приложение в образе микродокера payara из сценария оболочки
Получите номер версии зависимости из pom.xml с помощью командной строки и используйте этот номер версии, чтобы пометить образ докера
При сборке maven должен вызвать spring-boot-maven-plugin на шагах 1 и 3. Могу ли я избежать предупреждения «обнаружено дублирующее объявление плагина»?
Запуск тестов Maven
Экспорт проекта Maven с подпроектом в jar-файл
NetBeans – Maven – JaCoCo – невозможно добавить другой класс с тем же именем