Опубликовывают стратегию репозитория в Nexus, гарантирует, что банка никогда не будет изменяться?

Я нахожусь в процессе развертывания OSS Nexus как внутренний репозиторий компании. Одно из основных требований - то, что, после того как банка была загружена Nexus (например, когда использование будет как прокси Центрального Знатока), это никогда не будет изменяться. Я знаю, что у Центрального Знатока есть та политика, но я использую другие репозитории, которые не находятся под моим контролем, и я должен проверить то требование к своей стороне.

Политика репозитория Выпуска гарантирует, что, после того как банка загружается в это respository, это никогда не будет изменяться?

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

1
задан Asaf Mesika 2 August 2010 в 21:15
поделиться

1 ответ

Действительно, репозиторий выпуска должен строго запрещать изменение содержимого после выпуска, что и делает Maven Central:

2.2.4. Центральный репозиторий Maven

(...) Вот некоторые свойств выпуска репозитории, такие как Central Maven репозиторий:

...

Стабильность выпуска

После публикации в Central Maven репозиторий, артефакт и метаданные, описывающие этот артефакт никогда не меняется. Это свойство выпуска репозиториев гарантирует, что проекты которые зависят от релизов, будут повторяемость и стабильность во времени. Пока новые программные артефакты публикуется в центральном каждый день, один раз артефакту назначается релиз номер на Центральной, есть строгий политика против изменения содержимого программного артефакта после выпуск.

При этом, будет ли клиент Maven (повторно) загружать артефакт или нет, на самом деле не зависит от репозитория и его политики, это часть ДНК Maven, и этого просто не произойдет (если вы не удалите данный конечно артефакт из вашего локального репозитория). Цитата Бретта Портера в [MNG-2528] - updatePolicy «always» не работает для репозиториев с «релизами», по крайней мере, не для транзитивных зависимостей :

Релизы в Maven по определению неизменны. Флаг Always - проверять наличие новых выпусков (как поиск новых снимков), а не модификации существующего.

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

2
ответ дан 2 September 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: