对 GitHub Packages 进行身份验证
GitHub Packages 仅支持使用个人访问令牌(经典)进行身份验证。有关更多信息,请参阅“管理您的个人访问令牌”。
您需要访问令牌才能发布、安装和删除私有、内部和公共包。
您可以使用个人访问令牌(经典)对 GitHub Packages 或 GitHub API 进行身份验证。创建个人访问令牌(经典)时,您可以根据需要为令牌分配不同的范围。有关个人访问令牌(经典)的与包相关的范围的更多信息,请参阅“关于 GitHub Packages 的权限”。
要在 GitHub Actions 工作流程中对 GitHub Packages 注册表进行身份验证,您可以使用
GITHUB_TOKEN
发布与工作流程存储库关联的包。- 具有至少
read:packages
范围的个人访问令牌(经典)来安装与其他私有存储库关联的包(GITHUB_TOKEN
无法访问)。
有关在 GitHub Actions 工作流程中使用的 GITHUB_TOKEN
的更多信息,请参阅“自动令牌身份验证”。
使用个人访问令牌进行身份验证
您必须使用具有适当范围的个人访问令牌(经典)才能在 GitHub Packages 中发布和安装包。有关更多信息,请参阅“GitHub Packages 简介”。
您可以通过编辑 ~/.m2/settings.xml 文件以包含您的个人访问令牌(经典)来对 GitHub Packages 使用 Apache Maven 进行身份验证。如果不存在,请创建一个新的 ~/.m2/settings.xml 文件。
在 servers
标签中,添加一个带有 id
的子 server
标签,将 USERNAME 替换为您的 GitHub 用户名,将 TOKEN 替换为您的个人访问令牌。
在 repositories
标签中,通过将存储库的 id
映射到您在包含凭据的 server
标签中添加的 id
来配置存储库。将 OWNER 替换为拥有存储库的个人帐户或组织的名称。由于不支持大写字母,因此即使 GitHub 用户或组织名称包含大写字母,您也必须对存储库所有者使用小写字母。
如果您想与多个存储库交互,可以在 repositories
标签中将每个存储库添加到单独的 repository
子级中,将每个存储库的 id
映射到 servers
标签中的凭据。
GitHub Packages 支持 Apache Maven 的 SNAPSHOT
版本。要使用 GitHub Packages 存储库下载 SNAPSHOT
工件,请在使用项目的 POM 或您的 ~/.m2/settings.xml 文件中启用 SNAPSHOTS。
<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://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/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
的存储库中。
如果您想将多个包发布到同一个存储库,可以在 pom.xml 文件的 <distributionManagement>
元素中包含存储库的 URL。GitHub 将根据该字段匹配存储库。由于存储库名称也是 distributionManagement
元素的一部分,因此没有额外的步骤可以将多个包发布到同一个存储库。
有关创建包的更多信息,请参阅 maven.apache.org 文档。
-
编辑位于您的包目录中的 pom.xml 文件的
distributionManagement
元素,将OWNER
替换为拥有存储库的个人帐户或组织的名称,将REPOSITORY
替换为包含您的项目的存储库的名称。<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url> </repository> </distributionManagement>
-
发布包。
mvn deploy
发布包后,您可以在 GitHub 上查看该包。有关更多信息,请参阅“查看包”。
安装包
要从 GitHub Packages 安装 Apache Maven 包,请编辑pom.xml文件以将该包包含为依赖项。如果您想从任何存储库为指定的存储库所有者安装包,请使用类似于https://maven.pkg.github.com/OWNER/*
的存储库 URL。有关在项目中使用pom.xml文件的更多信息,请参阅 Apache Maven 文档中的“POM 简介”。
-
验证到 GitHub Packages。有关更多信息,请参阅“验证到 GitHub Packages”。
-
将包依赖项添加到项目pom.xml文件的
dependencies
元素中,将com.example:test
替换为您的包。<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies>
-
安装包。
mvn install
进一步阅读
- "使用 Gradle 注册表"
- "删除和恢复包"