Если вы уже загрузили артефакт в пакеты GitHub, это означает, что вы все настроили правильно.
Полагаю, реальный резонанс для ошибки 422 состоит в том, что вы пытаетесь загрузить тот же артефакт с той же версией , которая уже была загружена. И если это не версия SNAPSHOT , то хранилище должно запретить его замену, чтобы оно работало правильно.
При попытке повторно развернуть уже развернутый пакет я получил ту же ошибку:
Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project MavenPluginForGithub:
Failed to deploy artifacts: Could not transfer artifact ru.dmochalov:SampleMavenPluginForGithub:jar:1.0.3 from/to github (https://maven.pkg.github.com/dmochalov/hello-world):
Failed to transfer file: https://maven.pkg.github.com/dmochalov/hello-world/ru/dmochalov/SampleMavenPluginForGithub/1.0.3/SampleMavenPluginForGithub-1.0.3.jar.
Return code is: 422, ReasonPhrase: Unprocessable Entity. -> [Help 1]
Как исправить?
Предполагается, что у вас есть два варианта:
- Увеличить версию
<version>1.0.0</version>
плагина с 1.0.0 до 1.0.1. Попробуйте использовать версии 1.0.1-SNAPSHOT , если плагин нестабилен и находится в стадии разработки. GitHub позволяет повторно развертывать артефакты в версии SNAPSHOT. Поэтому вы всегда можете развернуть его при разработке. - Удалить пакет из репозитория. Вы можете сделать это только для пакетов в приватном репозитории .
442 ошибка против ошибки 401
Я предполагаю, что не существует принятой спецификации или стандартизации для кодов ошибок, и разные репозитории ведут себя по-разному. Например, репозиторий Maven Central отвечает с ошибкой 401 при попытке заменить уже развернутую версию. Почему GitHub решил использовать 422 - загадка. На форуме сообщества есть ответ , но без объяснения причин.