Как загрузить артефакт Maven в пакеты Github с помощью командной строки?
Я пытаюсь загрузить артефакт Maven, который я не создал, в реестр пакетов GitHub моей организации. Для этого я использую плагин Maven deploy: deploy-file. Вот команда, которую я использовал:
mvn deploy:deploy-file
-Dfile=[THE JAR FILE]
-Durl=https://maven.pkg.github.com/[ORG]
-Dregistry=https://maven.pkg.github.com/[ORG]
-DgroupId=[GID]
-DartifactId=[ARTIFACTID]
-Dversion=[VERSION]
-DgeneratePom=false
-Dtoken=[MY GITHUB TOKEN]
В результате я получаю 401 ошибку от Github. Я убедился, что:
- У меня достаточно разрешений внутри моей организации (в настоящее время владелец).
- Токен, который я использую, действителен и имеет соответствующие области действия: я тестирую их все.
Также на странице пакета github указано:
<!-- Just a single step: Deploy using a GitHub token -->
$ mvn deploy -Dregistry=https://maven.pkg.github.com/[org] -Dtoken=GH_TOKEN
Почему я не могу найти в документации Maven информацию о параметрах реестра или токена? Могу ли я загрузить этот файл в реестр организации без какого-либо файла конфигурации XML, используя только cli?
Заранее спасибо.
3 ответа
Мне это удалось:
mvn deploy:deploy-file -Dfile=./[JAR].jar
-DpomFile=./pom.xml
-DrepositoryId=github
-Durl=https://maven.pkg.github.com/[OWNER]/[REPO]
-Dtoken=GH_TOKEN
И файл settings.xml в моем домашнем каталоге maven:
<settings>
<servers>
<server>
<id>github</id>
<username>[GITHUB USERNAME]</username>
<password>[GENERATED ACCESS TOKEN]</password>
</server>
</servers>
</settings>
И внутри моего ПОМ:
...
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/[OWNER]/[REPO]</url>
</repository>
</distributionManagement>
...
Чтобы обойти проблему репо - поскольку я не хотел, чтобы каждый пакет публиковался в другом репо, я создал репо с именем
packages
и опубликовал на нем пакеты из всех остальных репозиториев, используя ту же конфигурацию, что и в двух других ответах.
URL-адрес также должен иметь имя репозитория.
В одном из моих проектов это есть в pom.xml
<distributionManagement>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/stirante/lol-client-java-api</url>
</repository>
</distributionManagement>