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

配置 Apache Maven 用于 GitHub Package Registry

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

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

本文内容

向 GitHub 包注册表 验证

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

You can also use a GITHUB_TOKEN to push packages to the GitHub 包注册表 in a GitHub 操作 workflow. For more information, see "`GITHUB_TOKEN secret."

通过编辑 ~/.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>

发布包

推送时,默认情况下会在与包同名的仓库中创建包。 例如,名为 com.example.test 的包将被发布到 OWNER/test GitHub 包注册表 仓库。 将自动为包的版本创建 GitHub 包注册表 版本和关联 Git 标记(如果尚不存在)。

如果要将多个包发布到同一个仓库,您可以在 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 简介”。

删除包

为避免破坏可能依赖于包的项目,GitHub 包注册表 不支持删除包或删除包的版本。在特殊情况下,例如出于法律原因或为了符合 GDPR 标准,您可以通过 GitHub 支持 申请删除包。请使用我们的联系表 和主题行 "GitHub 包注册表" 联系 GitHub 支持。

问问别人

找不到要找的内容?

联系我们