#maven #github #deployment #package #snapshot
#maven #github #развертывание #пакет #снимок
Вопрос:
Я пытаюсь развернуть свой артефакт как упакованный в пакеты Github. При чистом развертывании я получаю
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project cardgame: Failed to deploy artifacts: Could not transfer artifact org.moderatelycomfortablechair:cardgame:jar:0.0.1-20201222.145834-1 from/to github (https://maven.pkg.github.com/ModeratelyComfortableChair/CardGame): Access denied to https://maven.pkg.github.com/ModeratelyComfortableChair/CardGame/org/moderatelycomfortablechair/cardgame/0.0.1-SNAPSHOT/cardgame-0.0.1-20201222.145834-1.jar. Error code 403, Forbidden -> [Help 1]
Мой pom.xml содержит следующее
<modelVersion>4.0.0</modelVersion>
<groupId>org.moderatelycomfortablechair</groupId>
<artifactId>cardgame</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>cardgame</name>
…
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub ModeratelyComfortableChair Apache Maven Packages</name>
<url>https://maven.pkg.github.com/ModeratelyComfortableChair/CardGame</url>
</repository>
Мой ~/ .m2/settings.xml это то же самое, что и здесь, где имя пользователя и владелец — ModeratelyComfortableChair (мое имя пользователя на github), а пароль — личный токен доступа с доступом к репозиторию и доступом на чтение и запись.
Комментарии:
1. В следующей ссылке указано, что я должен указать владельца в нижнем регистре. Я изменил свои настройки и pom.xml к следующему, имеющему ВЛАДЕЛЬЦА в нижнем регистре, а ВЛАДЕЛЬЦА и РЕПОЗИТОРИЙ в нижнем регистре, но безрезультатно.
Ответ №1:
Во-первых, вам необходимо иметь доступ на чтение: запись к пакетам в вашем личном токене доступа (PAT). Это должно решить вашу проблему.
Это очень хорошо работает с вашими частными репозиториями. Однако для тех, кто работает с репозиториями организации и применяет единый вход (SSO), этого может быть недостаточно. Токен должен быть явно авторизован для единого входа. И команда Maven не запрашивает этого.
Существуют разные способы авторизации токена, два из которых описаны ниже.
- [Самый простой] Войдите в учетную запись GitHub и перейдите в раздел PAT. Там вы найдете опцию для включения единого входа для данного токена. (Имя токена в вашем случае может отличаться)
- Попробуйте клонировать свой репозиторий с помощью командной строки Git —
git clone https://[USERNAME]:[TOKEN]@[GIT_ENTERPRISE_DOMAIN]/[ORGANIZATION]/[REPO].git
Он выдаст сообщение об ошибке и предоставит вам URL-адрес для авторизации токена с помощью единого входа. Доступ к URL-адресу в браузере и авторизация единого входа для данного токена. После авторизации вы сможете публиковать / развертывать свои артефакты.
Приветствия!