Примечание.
Этот тип пакета может быть недоступен для вашего экземпляра, так как администраторы сайта могут включить или отключить каждый поддерживаемый тип пакета. Дополнительные сведения см. в разделе Настройка поддержки экосистемы пакетов для предприятия.
Проверка подлинности в GitHub Packages
Примечание.
GitHub Packages поддерживает проверку подлинности только с помощью personal access token (classic). Дополнительные сведения см. в разделе Управление личными маркерами доступа.
Для публикации, установки и удаления частных, внутренних и общедоступных пакетов требуется маркер доступа.
Можно использовать personal access token (classic) для проверки подлинности в API GitHub Packages или API GitHub . При создании personal access token (classic)можно назначить маркер различным областям в зависимости от ваших потребностей. Дополнительные сведения о областях, связанных с пакетами, для personal access token (classic), см. в разделе Сведения о разрешениях для пакетов GitHub.
Для проверки подлинности в реестре GitHub Packages в рабочем процессе GitHub Actions можно использовать следующее:
GITHUB_TOKENдля публикации пакетов, связанных с репозиторием рабочих процессов.- personal access token (classic) с по крайней мере
read:packagesобластью действия для установки пакетов, связанных с другими частными репозиториями (GITHUB_TOKENможно использовать, если репозиторий предоставлен доступ на чтение к пакету. См . раздел AUTOTITLE.
Дополнительные сведения об GITHUB_TOKEN использовании в рабочих процессах GitHub Actions см. в разделе Использование GITHUB_TOKEN для проверки подлинности в рабочих процессах.
Проверка подлинности с помощью personal access token
Необходимо использовать personal access token (classic) с соответствующими областями для публикации и установки пакетов в GitHub Packages. Дополнительные сведения см. в разделе Введение в GitHub Packages.
Вы можете пройти проверку подлинности в GitHub Packages с помощью Apache Maven, изменив файл ~/.m2/settings.xml , чтобы включить данные personal access token (classic). Создайте новый файл ~/.m2/settings.xml, если он не существует.
servers В теге добавьте дочерний server тег с idименем пользователя , заменив имя пользователя GitHub и токен personal access token.
В теге repositories настройте репозиторий, сопоставив id репозитория с id, добавленным в теге server, который содержит учетные данные. Замените HOSTNAME именем узла ваш экземпляр GitHub Enterprise Server, а OWNER — именем личная учетная запись или организации, которая владеет репозиторием. Поскольку прописные буквы не поддерживаются, необходимо использовать строчные буквы для указания владельца репозитория, даже если имя пользователя или организации GitHub содержит прописные буквы.
Для взаимодействия с несколькими репозиториями можно добавить каждый репозиторий в отдельный дочерний элемент repository тега repositories, сопоставив id каждого репозитория с учетными данными в теге servers.
GitHub Packages поддерживает версии SNAPSHOT средства Apache Maven. Чтобы использовать репозиторий GitHub Packages для скачивания артефактов SNAPSHOT, включите SNAPSHOTS в POM используемого проекта или своем файле ~/.m2/settings.xml.
Если в вашем экземпляре включена изоляция поддоменов:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>https://maven.HOSTNAME/OWNER/REPOSITORY</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
Если в вашем экземпляре выключена изоляция поддоменов:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>HOSTNAME/_registry/maven/OWNER/REPOSITORY</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
Публикация пакета
По умолчанию GitHub публикует пакет в существующем репозитории с тем же именем, что и у пакета. Например, GitHub опубликует пакет с именем com.example:test в репозитории OWNER/test.
Предупреждение
Пакет Apache Maven должен соответствовать соглашению об именовании, поэтому artifactId поле должно содержать только строчные буквы, цифры или дефисы. Дополнительные сведения см. в разделе "Соглашение об именовании координат Maven" в документации по maven.apache.org. Если в имени артефакта используются прописные буквы, вы получите ответ 422 Unprocessable Entity .
Чтобы опубликовать несколько пакетов в одном репозитории, можно включить URL-адрес репозитория в элемент <distributionManagement> файла pom.xml. GitHub сопоставит репозиторий на основе этого поля. Поскольку имя репозитория также является частью элемента distributionManagement, дополнительные действия по публикации нескольких пакетов в одном репозитории не требуются.
Дополнительные сведения о создании пакета см. в документации по maven.apache.org.
-
distributionManagementИзмените элемент файла pom.xml, расположенного в каталоге пакета, заменив HOSTNAME именем узла ваш экземпляр GitHub Enterprise Server,OWNERименем личная учетная запись или организации, которая владеет репозиторием иREPOSITORYименем репозитория, содержащего проект.Если в вашем экземпляре включена изоляция поддоменов:
<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://maven.HOSTNAME/OWNER/REPOSITORY</url> </repository> </distributionManagement>If your instance has subdomain isolation disabled:
<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://HOSTNAME/_registry/maven/OWNER/REPOSITORY</url> </repository> </distributionManagement> -
Publish the package.
mvn deploy
После публикации пакет можно просмотреть здесь: GitHub. Дополнительные сведения см. в разделе Просмотр пакетов.
Установка пакета
Чтобы установить пакет Apache Maven из GitHub Packages, измените файл pom.xml, включив в него пакет в качестве зависимости. Если вы хотите установить пакеты из любого репозитория для указанного владельца репозитория, используйте URL-адрес репозитория, например https://maven.HOSTNAME/OWNER/*. Дополнительные сведения об использовании файла pom.xml в проекте см. в статье "Общие сведения о POM " в документации Apache Maven.
-
Пройдите проверку подлинности в GitHub Packages. Дополнительные сведения см. в разделе "Проверка подлинности в GitHub Packages.
-
Добавьте зависимости пакета в элемент
dependenciesфайла проекта pom.xml, заменивcom.example:testсвоим пакетом.<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies> -
Установите пакет .
mvn install