Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
使用 Azure Artifacts 上游源,可以使用单个源来托管你生成的包以及从公共注册表(如 Maven Central)生成的包。 将上游源添加到你的 feed 时,Azure Artifacts 会保存从上游安装的所有包的副本。 这可确保您的开发持续可用,即使公共注册表发生中断。 此外,Azure Artifacts 还支持各种其他 Maven 上游源,包括 Google Maven 存储库、Gradle 插件和 JitPack。
先决条件
注意
Maven 上游源不支持 Maven 快照。
启用上游源
如果还没有源,请按照这些说明创建一个源,并确保选中 上游源 复选框以启用它们。 如果已有源,请转到 下一步 ,将 Maven Central 添加为上游源。
登录到 Azure DevOps 组织,并导航到你的项目。
选择“项目”,然后选择“创建源”。
为您的源提供 名称,选择 可见性 选项来确定谁可以查看您的包。若要包括来自常见公共源(如 nuget.org 或 npmjs.com)的包,请勾选“包括公共源中的包”。关于 范围,请决定该源是否仅限于您的项目或整个组织。
完成操作后,选择“创建”。
登录到 Azure DevOps 服务器,然后转到项目。
选择“项目”,然后选择“创建源”。
为您的源提供 名称,选择 可见性 选项来确定谁可以查看您的包。若要包括来自常见公共源(如 nuget.org 或 npmjs.com)的包,请勾选“包括公共源中的包”。关于 范围,请决定该源是否仅限于您的项目或整个组织。
完成操作后,选择“创建”。
完成操作后,选择“创建”。
注意
默认情况下,当创建新提要时,项目中的生成服务(例如:projectName Build Service (orgName))将被分配提要和上游阅读者(协作者)角色。
添加 Maven Central 上游源
如果在创建源时选中了 上游源 复选框,则 Maven Central 应已添加为上游源。 如果没有,可以使用以下步骤手动添加它:
登录到 Azure DevOps 组织,并导航到你的项目。
选择“项目”,然后选择右上角的
以进入你的信息流设置。
选择 上游源,然后选择“ 添加上游”。
选择“公共源”,从下拉菜单中选择,然后在完成后选择“https://repo.maven.apache.org/maven2/”。
选择右上角的“保存”以保存更改。
保存来自 Maven Central 的包
在保存来自 Maven Central 的包之前,请确保已将项目设置为连接到源。 如果尚未这样做,请按照项目设置中的说明设置 Maven 项目并连接到源。 以下示例演示如何使用命令行从 Maven Central 保存 Kotlin 日期/时间库。
要改用 Azure Pipelines 来保存/还原包,请按使用 Azure Pipelines 还原 Maven 包(YAML/经典)教程中的步骤操作。
访问
https://mvnrepository.com/
以导航到 Maven Central。搜索 Kotlin 日期时间库。 选择 Kotlinx Datetime 包,然后选择要安装的版本。
<dependency>
从 Maven 选项卡复制代码片段。<dependency> <groupId>org.jetbrains.kotlinx</groupId> <artifactId>kotlinx-datetime-jvm</artifactId> <version>0.4.1</version> <scope>runtime</scope> </dependency>
打开pom.xml文件并将代码片段粘贴到标记中
<dependencies>
,然后保存文件。从pom.xml文件所在的同一路径运行以下命令以安装依赖项:
mvn install
注意
要从上游保存包,必须拥有订阅和上游阅读者(协作者)的角色或更高权限的角色。 有关更多详细信息,请参阅 “管理权限 ”。
查看保存的包
可以通过从下拉菜单中选择 Maven Central 源来查看从上游保存的包。
登录到 Azure DevOps 组织,并导航到你的项目。
选择“ 项目”,然后从下拉菜单中选择源。
从源下拉菜单中选择 Maven Central 以筛选来自此上游的包。
我们在上一步中保存的 Kotlinx Datetime 包现已在我们的馈送中提供。 执行 mvn 安装命令时,Azure Artifacts 会自动将副本保存到我们的源中。
提示
如果 Maven 未下载所有依赖项,请从项目目录运行以下命令以重新生成项目的文件: mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true