Не удалось выполнить цель org.apache.maven.plugins:maven-deploy-plugin: 2.7: развертывание пакетов Github

#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 не запрашивает этого.

Существуют разные способы авторизации токена, два из которых описаны ниже.

  1. [Самый простой] Войдите в учетную запись GitHub и перейдите в раздел PAT. Там вы найдете опцию для включения единого входа для данного токена. (Имя токена в вашем случае может отличаться)
    введите описание изображения здесь
  2. Попробуйте клонировать свой репозиторий с помощью командной строки Git —

    git clone https://[USERNAME]:[TOKEN]@[GIT_ENTERPRISE_DOMAIN]/[ORGANIZATION]/[REPO].git

    Он выдаст сообщение об ошибке и предоставит вам URL-адрес для авторизации токена с помощью единого входа. Доступ к URL-адресу в браузере и авторизация единого входа для данного токена. После авторизации вы сможете публиковать / развертывать свои артефакты. введите описание изображения здесь

    Приветствия!