Как обновить зависимость maven с тем же номером версии в артефактах Azure - PullRequest
0 голосов
/ 01 марта 2019

Мы изменили наш частный репозиторий max Nexus на Azure Artifacts.И когда мы загружаем частную зависимость maven с какой-либо версией, она сообщает нам следующую информацию:

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins: maven-deploy-plugin: 2.7: deploy (default-deploy) в проекте HmapBasic: не удалось развернуть артефакты: невозможно передать артефакт com.hand: HmapBasic: pom: 3.0.3-RELEASE из / в dev-azure-com-kohlerdevops-konnect-unified (https://pkgs.dev.azure.com/KohlerDevOps/_packaging/Konnect-Unified/maven/v1/): Не удалось передать файл: https://pkgs.dev.azure.com/KohlerDevOps/_packaging/Konnect-Unified/maven/v1/com/hand/HmapBasic/3.0.3-RELEASE/HmapBasic-3.0.3-RELEASE.pom. Код возврата: 409

Я обнаружил ошибку кода 409. Это означает, что мы уже загрузили зависимость с этой версией, и мы можемНе загружайте это снова. Мы хотим использовать новую зависимость, покрываем старую без изменения версии (потому что если мы меняем версию, все наши проекты должны изменить pom.xml)

как мы можем это сделатьв лазурных артефактах?

1 Ответ

0 голосов
/ 01 марта 2019

Как обновить зависимость maven с тем же номером версии в артефактах Azure

Боюсь, вам нужно изменить pom.xml, я понимаю, как это вас расстраивает.Но это то, что Azure Artifacts специально разработало для обеспечения правильности результатов сборки.

Проверьте документ: Понять неизменность пакетов.

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

Причина такого дизайна:

Это потому, что многие клиенты пакетов, включая NuGet, хранят локальный кеш пакетов на вашем компьютере.Как только клиент кэширует конкретный пакет @ version, он возвращает эту копию в будущих запросах на установку / восстановление.Если на сервере вы замените пакет @ версия (версия 1) новым пакетом @ версия (версия 2), клиент не сможет определить разницу.клиент все еще использует старую версию в кеше.Это может привести к неопределенным результатам сборки на разных машинах.

Таким образом, мы не можем перезаписать все пакеты, которые уже были загружены, даже мы не можем удалить их и повторно загрузить.Чтобы решить эту проблему, единственный способ - загрузить пакеты с новой версией .

Проверьте мою другую ветку для получения дополнительной информации.

Надеюсь, это поможет.

...