使用来自 Maven Central 的包

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

使用 Azure Artifacts 的上游源,可以通过一个单一的 feed 来托管您自己的包以及来自公共注册表(如 Maven Central)的包。 启用上游源后,Azure Artifacts 会自动保存从上游源安装的任何包的副本。 这可确保即使公共注册表遇到中断,开发过程也能无缝地继续。

注意

Maven 上游源不支持 Maven 快照。

先决条件

产品 要求
Azure DevOps - 一个 Azure DevOps 组织
- Azure DevOps 项目
- 下载安装 Apache Maven。

创建信息流

如果已有 Azure Artifacts 源,请跳到下一部分。 否则,请按照以下步骤创建一个:

  1. 登录到 Azure DevOps 并导航到项目。

  2. 选择 “工件”,然后选择“创建订阅源”

  3. 为源提供 名称 ,设置 可见性 以控制谁可以访问包,然后选择源 范围。 请确保勾选包括常见公共源的包,以启用上游源并允许使用公共注册库中的包。

  4. 选择 创建 以完成信息流的创建。

添加 Maven Central 上游源

如果在设置源时选中 了上游源 复选框,则 Maven Central 应已添加为上游源。 否则,可以按照以下步骤手动添加它:

  1. 登录到 Azure DevOps 并导航到项目。

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

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

  4. 选择“公共源”,从下拉菜单中选择,然后在完成后选择“https://repo.maven.apache.org/maven2/”。

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

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

连接到源

必须先设置项目并连接到源,然后才能开始从上游源保存包。

  1. 登录到 Azure DevOps,然后导航到项目。

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

  3. 选择 连接到 Feed,然后从左侧面板中选择 Maven

  4. 请确保已安装必备组件,然后按照 项目设置部分中的步骤设置你的 pom.xmlsettings.xml 文件,并连接到你的信息流。 有关更多详细信息 ,请参阅项目设置 - Maven

使用来自 Maven Central 的包

以下示例演示如何通过命令行从 Maven Central 获取 Apache HttpClient 包。

注意

要从上游保存包,必须拥有订阅和上游阅读者(协作者)的角色或更高权限的角色。 有关更多详细信息,请参阅 源角色和权限

  1. 访问 Maven Central https://mvnrepository.com/

  2. 搜索 Apache HttpClient。 选择包,然后选择要安装的版本。

  3. Maven 选项卡下,复制 <dependency> 代码片段:

    <dependency>
      <groupId>org.apache.httpcomponents.client5</groupId>
      <artifactId>httpclient5</artifactId>
      <version>5.5.1</version>
    </dependency>
    
  4. 打开 pom.xml 文件并将代码片段粘贴到标记中 <dependencies> ,然后保存文件。

  5. pom.xml 文件所在的同一目录中运行以下命令以安装依赖项:

    mvn install
    

查看保存的包

现在,在从 Maven Central 安装包之后,您可以看到 Azure Artifacts 如何将该包的副本自动保存到您的源库。 可以筛选源视图以查看从不同的上游源保存的包。

  1. 登录到 Azure DevOps,并导航到项目。

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

  3. 从源下拉列表中,选择 Maven Central 以筛选来自此上游的包。

  4. 在上一步中保存的 Apache HttpClient* 包现已在你的数据源中提供。

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

提示

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