Не удалось развернуть артефакты с помощью maven, код ошибки 409

Я использую azure DevOps и пытаюсь создать код и загрузить его с помощью maven, но получаю следующее сообщение об ошибке.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file 
(default-cli) on project ojdbc7: 

com.huber.abc:ojdbc7:jar:2.0 from
to dev-azure-com-abc-devops-abc-artifacts (https://pkgs.dev.azure.com/ABC-DevOps/_packaging/abc- 
Artifacts/maven/v1):

Failed to transfer file 

https://pkgs.dev.azure.com/abc-DevOps/_packaging/abc- 
Artifacts/maven/v1/com/huber/abc/ojdbc7/2.0/ojdbc7-2.0.jar with status code 409 -> [Help 1]Failed to 
deploy artifacts: 

Could not transfer artifact

Я нашел один вопрос thread вроде похожая проблема. Согласно этой ссылке, не используйте снимок, а используйте релиз. Поэтому я добавляю сюда свой файл pom.xml для справки.

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.myorg.abc</groupId>
  <artifactId>ojdbc7</artifactId>
  <version>2.0</version>
</project>

Я не знаю, как решить эту проблему. Я видел много версий ошибки 409. Но, похоже, моя проблема в другом, пожалуйста, помогите мне.


person Ashish-BeJovial    schedule 02.12.2019    source источник
comment
Полный ли pom-файл в вашем вопросе? Я не мог в нем repositories узел. Кстати, я не смог получить какую-либо полезную информацию из журнала ошибок, он просто показывает код состояния ошибки 409 без какой-либо другой полезной информации, поэтому я не мог дать никаких полезных предложений, попытаться поделиться журналом отладки или любой другой информацией об этой проблеме .   -  person Leo Liu-MSFT    schedule 04.12.2019
comment
Более подробную информацию я выложу здесь.   -  person Ashish-BeJovial    schedule 10.12.2019


Ответы (2)


Это не полный ответ, но он может немного помочь. Я новичок как в Azure Dev Ops, так и в Maven, поэтому, пожалуйста, простите и исправьте любые ошибки в комментариях. Я повторил некоторые вещи, ясно, что ОП знает, чтобы сделать ответ более ясным для других.

Maven позволяет развертывать два вида артефактов:

  1. ОБЗОРЫ

    • A snapshot is a development version of a package.
    • Снимки имеют суффикс -SNAPSHOT. Например. 1.2.0-SNAPSHOT
    • SNAPSHOTS изменчивы. Операция развертывания может заменить SNAPSHOT новой версией (более свежие версии разработки могут заменить версии разработки)
  2. РЕЛИЗЫ

    • Any version not ending in the suffix -SNAPSHOT is considered a release version.
    • Релизы неизменны. Операция развертывания завершится ошибкой, если выпуск уже был развернут в репозитории.

409 = конфликт ресурсов

Это может означать

  • Артефакт уже опубликован и не может быть перезаписан

  • Артефакт не может быть опубликован из-за неправильного типа. Например, публикация выпуска в репозитории, который принимает только снимки, или публикация снимка в репозитории, который принимает только выпуски.

См. Также: Как обновить зависимость maven с тем же номером версии в Azure Artifacts (нельзя для выпуска)

Я не уверен, как сказать maven, что это нормально, если развертывание не удастся, если артефакт уже существует. Очевидный и неправильный взлом (в Linux):

mvn deploy || /bin/true

Я не уверен, что эквивалент в Azure, и есть ли у maven возможность, которая заставляет его вести себя таким образом. Этот взлом плох, потому что он будет сообщать об успешном этапе развертывания, если он не удался по другой причине.

Есть плагин https://github.com/chonton/exists-maven-plugin это видит https://stackoverflow.com/a/53623937/1569204. Опять же, я не знаю, как включить это в Azure.

Я спросил это как отдельный вопрос

person Bruce Adams    schedule 09.06.2020

В Azure Devops, нельзя повторно использовать номера версий в ленте репозитория артефактов. Например, если вы уже развернули v2.0 и удалили его из фида, вы получите ошибку HTTP 409, если попытаетесь повторно развернуть v2.0 артефакт с тем же именем в любое время в будущем.

person fiveclubs    schedule 24.11.2020