Удаление артефакта из Maven Central

Я только что синхронизировал артефакт с Maven Central с oss.sonatype.org. Сразу же после этого была обнаружена проблема (разумеется). Я еще не объявлял о новом артефакте, очень маловероятно, что кто-то его еще использует, поэтому я хотел бы удалить его, прежде чем кто-то начнет использовать сломанную версию.

Как удалить сломанный артефакт из Maven Central?


person emmby    schedule 20.03.2012    source источник
comment
Вот пример удаления артефактов issues.sonatype.org/browse/MVNCENTRAL-218   -  person Leif Gruenwoldt    schedule 06.08.2013


Ответы (5)


Это невозможно. Это Правило. Но если вы хотите попробовать, свяжитесь с людьми Sonatype, которые поддерживают oss.sonatype.org. Таким образом, вы обычно выпускаете новую, более позднюю версию с исправлением и говорите всем использовать ее.

person bmargulies    schedule 20.03.2012
comment
У вас есть источник для этого? - person ndmeiri; 22.05.2018
comment
Что делать, если артефакт нарушает лицензию? - person kravemir; 30.06.2018
comment
Правило описано здесь: central.sonatype.org/articles/2014/Feb/06/ - person asmaier; 25.02.2020

Если вы случайно распространили артефакт, который не работает, содержит ошибку или что-то еще, обычным решением в Maven является создание новой версии, которая устраняет проблемы. Вот и все. Удаление в Maven Central не выполняется и никогда не должно происходить.

person khmarbaise    schedule 20.03.2012
comment
У меня проблема в том, что я разделил пакеты или изменил идентификатор группы. Речь идет не о новом выпуске, а об удалении устаревшего, выпущенного в неправильном месте в иерархии репо. - person Gray; 13.03.2013
comment
Просто, как упоминал @bmargulies, это невозможно. Вот и все. Мы говорим о центральном maven? - person khmarbaise; 13.03.2013
comment
maven центральный, да. Я видел, что пакеты удаляются оттуда, поэтому я думаю, что это больше связано с сонатипом, чем с ограничениями на центральном сервере. - person Gray; 13.03.2013
comment
Я никогда не видел, чтобы артефакты удалялись из центра Maven. Так у вас есть пример? Могут работать только те артефакты, которые были развернуты определенным идентификатором группы.... Может быть, вы можете открыть билет для Maven Central - person khmarbaise; 13.03.2013
comment
Да, некоторые вещи Apache со временем переместились. Я также видел, как старые выпуски с проблемами безопасности исчезали. Бывает не часто но бывает. - person Gray; 13.03.2013

Вы не можете удалить артефакт из Maven Central, потому что другие, возможно, уже использовали его. Maven не будет проверять наличие обновлений для версий артефактов без моментальных снимков, поэтому, если кто-то использовал старую версию и была загружена новая версия, эти люди никогда не увидят новую версию.

Обходной путь — выпустить новую версию вашего артефакта.

person prunge    schedule 20.03.2012

Трудно сопротивляться желанию просто выпустить промежуточный репозиторий (это всего лишь один клик), но, как предлагается в Руководство по использованию Sonatype OSS

Вы захотите загрузить их и провести ручное тестирование (или провести голосование в сообществе), прежде чем окончательно их выпустить.

Если вы выпускаете продукт впервые, вам нужно будет прокомментировать свой тикет OSS Sonatype JIRA, чтобы активировать центральную синхронизацию. Предположительно, это возможность сказать: «Подождите! Этот артефакт сломан. Пожалуйста, пожалуйста, не синхронизируйте его с Maven Central!» :)

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

Бета-релизы — хорошая идея для новых/крупных релизов — люди немного снисходительнее относятся к тому, что вы что-то напортачили, и вы не потеряете желаемый номер версии.

person James Bassett    schedule 07.11.2012

Если вы не хотите создавать новую версию, другим решением будет поместить исправленный артефакт в ту же версию.

person gvlasov    schedule 07.07.2015
comment
Заменит ли он старый артефакт той же версией в центральном репозитории? Не будет жаловаться? - person Ram Patra; 21.03.2018
comment
Это не сработает. Когда артефакт есть, его нельзя заменить. - person Elliotte Rusty Harold; 05.02.2020