我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

配置 Apache Maven 用于 GitHub Package Registry

您可以将 Apache Maven 包发布到 GitHub 包注册表,并将其用作 Java 项目中的依赖项。

GitHub 包注册表 目前提供有限的公开测试版。更多信息请参阅“关于 GitHub 包注册表”。

本文内容

向 GitHub 包注册表 验证

必须使用具有 read:packageswrite:packages 作用域的个人访问令牌才能通过 Apache Maven 在 GitHub 包注册表 中发布和删除公共包。 对于私有仓库,您的个人访问令牌还必须具有 repo 作用域。 更多信息请参阅“创建用于命令行的个人访问令牌”。

通过编辑 ~/.m2/settings.xml 文件或创建它(如果它不存在),配置 Apache Maven 在推送新包时使用令牌。 该文件应类似于下面的示例。 将 USERNAME 替换为您的 GitHub 用户名,将 TOKEN 替换为您的个人访问令牌,并将 OWNER 替换为包含要向其发布包或从其安装包的仓库的 GitHub 用户或组织名称。

<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>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
          <id>github</id>
          <name>GitHub OWNER Apache Maven Packages</name>
          <url>https://maven.pkg.github.com/OWNER</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <servers>
    <server>
      <id>github</id>
      <username>USERNAME</username>
      <password>TOKEN</password>
    </server>
  </servers>
</settings>

您也可以在 GitHub 操作 工作流程的 GitHub 包注册表 中使用 GITHUB_TOKEN 发布并使用包,而无需存储和管理个人访问令牌。有关 GITHUB_TOKEN 的更多信息,请参阅“GITHUB_TOKEN 密码”。

您可以使用脚本将 GITHUB_TOKEN 注入的 GitHub 包注册表 的适当配置文件。在包客户端的配置文件中将 GitHub 包注册表 添加为替代注册表或仓库,以及具有适当范围的 GitHub 用户名和个人访问令牌。创建配置文件的准确步骤因包类型而异。

发布包

推送时,默认情况下会在与包同名的仓库中创建包。 例如,名为 com.example.test 的包将被发布到 OWNER/test GitHub 包注册表 仓库。

如果要将多个包发布到同一个仓库,您可以在 pom.xml<scm> 部分中包含 GitHub 包注册表 仓库的 URL。 GitHub 包注册表 将根据该字段匹配仓库。

有关创建包的更多信息,请参阅 maven.apache.org 文档

由于仓库名称属于 distributionManagement 部分,因此将多个包发布到同一个仓库没有额外的步骤。

  1. 编辑位于包目录中的 pom.xml 文件。 它应类似于下面的示例。 将 <url> 中的 OWNER 替换为包含要向其发布包或从其安装包的仓库的 GitHub 包注册表 用户或组织名称。 将 REPOSITORY 替换为仓库名称:

    <distributionManagement>
       <repository>
         <id>github</id>
         <name>GitHub OWNER Apache Maven Packages</name>
         <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
       </repository>
    </distributionManagement>
  2. 已创建包并准备将其发布到 GitHub 包注册表 用户或组织时,请运行:

    $ mvn deploy
  3. 您可以通过以下 URL 访问您的包(使用您的 GitHub 用户或组织名称替换 OWNER,使用您的仓库名称替换 REPOSITORY):

https://github.com/OWNER/REPOSITORY/packages

接收包注册表事件

在发布或更新包时,您可以接收 web 挂钩事件。更多信息请参阅“GitHub 开发者文档中的 RegistryPackageEvent”。

安装包

  1. 通过编辑 ~/.m2/settings.xml,设置 Apache Maven 向 GitHub 包注册表 验证。 更多信息请参阅“向 GitHub 包注册表 验证”。

  2. pom.xml 添加包依赖项。 例如,pom.xml 的此 dependencies 节点使用 com.example.test 包:

    <dependencies>
      <dependency>
        <groupId>com.example</groupId>
        <artifactId>test</artifactId>
        <version>1.0.0</version>
      </dependency>
    </dependencies>
  3. 安装包。

    $ mvn install

有关在项目中使用 pom.xml 的更多信息,请参阅 Apache Maven 文档中的“POM 简介”。

删除包

To avoid breaking projects that may depend on your packages, GitHub 包注册表 does not support deleting published versions of a package or an entire published package for public repositories. Under special circumstances, such as for legal reasons or to conform with GDPR standards, you can request deleting a package through GitHub 支持. Contact GitHub 支持 using our contact form and the subject line "GitHub 包注册表."

You can delete private packages via GitHub's API. For more information, see "Access to package version deletion" in GitHub 开发者文档.

延伸阅读

问问别人

找不到要找的内容?

联系我们