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 源,请跳到下一部分。 否则,请按照以下步骤创建一个:
登录到 Azure DevOps 并导航到项目。
选择 “工件”,然后选择“创建订阅源”。
为源提供 名称 ,设置 可见性 以控制谁可以访问包,然后选择源 范围。 请确保勾选包括常见公共源的包,以启用上游源并允许使用公共注册库中的包。
选择 创建 以完成信息流的创建。
添加 Maven Central 上游源
如果在设置源时选中 了上游源 复选框,则 Maven Central 应已添加为上游源。 否则,可以按照以下步骤手动添加它:
登录到 Azure DevOps 并导航到项目。
选择 “项目”,然后选择右上角的
按钮以导航到 源设置。选择 上游源,然后选择“ 添加上游”。
选择“公共源”,从下拉菜单中选择,然后在完成后选择“https://repo.maven.apache.org/maven2/”。
选择右上角的“保存”以保存更改。
连接到源
必须先设置项目并连接到源,然后才能开始从上游源保存包。
登录到 Azure DevOps,然后导航到项目。
选择项目,然后从下拉菜单中选择源。
选择 连接到 Feed,然后从左侧面板中选择 Maven。
请确保已安装必备组件,然后按照 项目设置部分中的步骤设置你的 pom.xml 和 settings.xml 文件,并连接到你的信息流。 有关更多详细信息 ,请参阅项目设置 - Maven 。
使用来自 Maven Central 的包
以下示例演示如何通过命令行从 Maven Central 获取 Apache HttpClient 包。
注意
要从上游保存包,必须拥有订阅和上游阅读者(协作者)的角色或更高权限的角色。 有关更多详细信息,请参阅 源角色和权限 。
访问 Maven Central
https://mvnrepository.com/。搜索 Apache HttpClient。 选择包,然后选择要安装的版本。
在 Maven 选项卡下,复制
<dependency>代码片段:<dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.5.1</version> </dependency>打开 pom.xml 文件并将代码片段粘贴到标记中
<dependencies>,然后保存文件。从 pom.xml 文件所在的同一目录中运行以下命令以安装依赖项:
mvn install
查看保存的包
现在,在从 Maven Central 安装包之后,您可以看到 Azure Artifacts 如何将该包的副本自动保存到您的源库。 可以筛选源视图以查看从不同的上游源保存的包。
登录到 Azure DevOps,并导航到项目。
选择项目,然后从下拉菜单中选择源。
从源下拉列表中,选择 Maven Central 以筛选来自此上游的包。
在上一步中保存的 Apache HttpClient* 包现已在你的数据源中提供。
提示
如果 Maven 未下载所有依赖项,请从项目目录运行以下命令以重新生成项目文件: mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true