使用来自 Maven Central 的包

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

使用 Azure Artifacts 上游源,可以使用单个源来托管生成的包以及从 Maven Central 等公共注册表生成的包。 将上游源添加到源时,Azure Artifacts 会保存从上游安装的任何包的副本。 这可确保为开发提供持续辅助功能,即使公共注册表发生中断也是如此。 此外,Azure Artifacts 还支持各种其他 Maven 上游 源,包括 Google Maven 存储库、Gradle 插件和 JitPack。

先决条件

  • Azure DevOps 组织和项目。 创建 组织项目 (如果尚未创建)。

  • Azure Artifacts 源。

注意

Maven 上游源不支持 Maven 快照。

启用上游源

如果还没有源,请按照这些说明创建一个源,并确保检查上游源检查框启用它们。 如果已有源,请转到下一步,将 Maven Central 添加为上游源。

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择 “项目”,然后选择“创建源” 以创建新源

  3. 输入源的描述性 名称 并定义其 可见性 (指示谁可以查看源中的包)。 指定源的范围,如果要包含来自公共源的包,请将上游源标记为检查框。

  4. 完成操作后,选择“创建”

    显示如何创建所需源的屏幕截图。

注意

默认情况下,新建的源将项目的生成服务设置为“源”和“上游读取者”(协作者)。

添加 Maven Central 上游

如果在创建源时检查上游检查框,则 Maven Central 应已添加为上游源。 如果没有,可以使用以下步骤手动添加它:

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择“项目”,然后选择齿轮图标右上角导航到源设置

  3. 选择 上游源,然后选择“ 添加上游”。

  4. 下拉菜单中选择“公共源”,然后从下拉菜单中选择“Maven Central”https://repo.maven.apache.org/maven2/,然后选择“保存”。

    显示如何添加 Maven 中心上游源的屏幕截图。

  5. 选择右上角的“保存”以保存更改。

    显示如何保存上游源的屏幕截图。

从 Maven Central 保存包

在从 Maven Central 保存包之前,请确保已设置项目以连接到源。 如果尚未这样做,请按照项目设置中的说明设置 Maven 项目并连接到源。

在此示例中,我们将从 Maven Central 保存 Kotlin 日期时间库。

  1. 导航到 Maven Central at https://mvnrepository.com/.

  2. 搜索 Kotlin 日期时间库。 选择 Kotlinx Datetime 包,然后选择要安装的版本。

  3. <dependency>Maven 选项卡复制代码片段。

    <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-datetime-jvm</artifactId>
        <version>0.4.1</version>
        <scope>runtime</scope>
    </dependency>
    
  4. 打开pom.xml文件并将代码片段粘贴到标记中<dependencies>,然后保存文件。

  5. 从pom.xml文件所在的同一路径运行以下命令以安装依赖项:

    mvn install
    

注意

若要从 上游 保存包,必须具有源和上游读取者(协作者)角色或更高版本。 有关详细信息,请参阅 权限

查看保存的包

可以通过从下拉菜单中选择 Maven Central 源来查看从上游保存的包。

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择“ 项目”,然后从下拉菜单中选择源。

  3. 从源下拉菜单中选择 Maven Central,筛选此上游中的包。

  4. 我们上一步中保存的 Kotlinx Datetime 包现已在我们的源中提供。 执行 mvn 安装命令时,Azure Artifacts 会自动将副本保存到源。

显示从 Maven Central 保存的包的屏幕截图。

提示

如果 Maven 未下载所有依赖项,请从项目目录运行以下命令以重新生成项目的文件: mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true