2013-05-26 2 views
3

Похоже, что нет плющ: отменить публикацию задание (см. here).Apache ivy не опубликовать задачу?

Таким образом, я полагаю, что неопубликованные должна выполняться на уровне файловой системы, либо вручную, либо через Ant задачу, которая удаляет ~/.ivy2/местные subfolers? (когда цель состоит в том, чтобы отменить публикацию на местном репо плюща).

ответ

1

Нет, плющ не поддерживает неопубликованное действие. Аналогично Maven не поддерживает такую ​​операцию.

Не уверен, что я понимаю прецедент. Когда один «публикует» контент, как правило, это очень плохая идея, чтобы удалить его позже ... Почему?

  • Вы можете непредсказуемо разбить чужие сборки, которые зависят от вашей версии.
  • Хранилища хранилища обычно предполагают, что выпущенные артефакты никогда не меняются. Если существует вероятность того, что они могут исчезнуть, это заставляет кеш постоянно «набирать номер», чтобы убедиться, что они не загрязнены.

Сказав, что есть аргументы против. Я рекомендую прочитать следующую отличную статью блога от Sonatype:

+0

Марк, см. Мой «ответ» ... любые мысли? –

3

я очень удивлен, что вы приняли ответ Марка, учитывая, что AFAICT это не имеет ничего общего с вашим потребительной случае, что касается вашего локального репозитория - то есть вашего личного репозитория в вашей системе. Его ответ относится только к общим хранилищам.

Существует прецедент с Ivy, который, как я подозреваю, очень распространен. Разработчик временно работает над двумя проектами, один из которых зависит от другого. Пока они делают эту работу, они публикуют SNAPSHOTs из восходящего проекта в свой локальный репозиторий, так что нисходящий проект «видит» свои изменения. Когда разработчик завершает эту задачу, они проверяют свои изменения на исходный элемент управления, а затем хотят «присоединиться к группе» и получить последние зависимости SNAPSHOT для проекта вверх. На этом этапе они хотят «отменить публикацию» восходящего проекта из своего локального репозитория, чтобы они возобновили потребление изменений от других разработчиков в группе.

За то, что мало что стоит, смотри также this Ivy Jira issue, с 2006

Как я отметил в своем комментарии там, от нескольких недель назад, я подозреваю, что некоторые лучшие практики, которые я не в курсе , что делает это спорным. Кто угодно?

+0

Справедливая точка, однако, Ivy не полностью поддерживает релизы моментальных снимков, которые являются функцией Maven. Являясь пользователем обеих технологий, у меня есть открытый взгляд на эту проблему, но я отказываюсь от выпусков моментальных снимков, когда я начинаю поддерживать системы непрерывной доставки. (Один тип сборки, каждая сборка является потенциальным выпуском) –

+0

@ MarkO'Connor - В описанном случае, работая над двумя проектами, в которых вам нужно продвигать локально, чтобы склеить их вместе, что вы делаете? Как вы, по-видимому, намекаете, используете ли какой-либо частный номер версии для вашей системы? Или вы никогда не сталкивались с этим прецедентом? –

+0

У плюша есть альтернативный механизм для разработки, который использует динамические изменения «latest.integration» и «latest.release».Если вы публикуете локальные версии интеграции и выпускаете в общий репо, я думаю, что это позволит достичь того, что вы ищете. Когда новая версия переходит в общий репо, она будет разрешена с помощью «latest.release». «latest.integration» также подберет его до тех пор, пока вы не опубликуете новую версию dev локально. –

Смежные вопросы