Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
使用 Azure Artifacts 中的上游源,可以从单个源管理所有应用程序依赖项。 它简化了从公共注册表(如 NuGet.org 或 npmjs.com)使用软件包的过程,同时提供针对中断或受损包的保护。 还可以将自己的包发布到同一源,并在一个位置管理所有依赖项。
本教程指导你在你的源中启用上游源,并从公共注册库(如 NuGet.org 或 npmjs.com)中使用包。
先决条件
创建供给源并启用上游源
登录到 Azure DevOps 组织,并导航到你的项目。
选择工件,然后选择创建源以创建新源。
为源提供 名称 ,选择其 可见性 和 范围,并确保选中 “包含公共源”复选框中的“包括包 ”以启用上游源。
完成操作后,选择“创建”。
重要
要将来自不同组织的源添加为上游源,目标源所有者必须通过导航到源设置>选择选择指定视图右侧的省略号按钮>>,与我的 Microsoft Entra 租户相关联的组织中的所有源和人员共享目标视图。
使用源进行身份验证
创建您的信息流后,请根据所使用的技术选择适当的选项卡,并按照说明设置配置文件来连接到您的信息流。
登录到 Azure DevOps 组织,并导航到你的项目。
选择工件,从下拉菜单中选择源,然后选择连接到源。
从左侧导航窗格中选择 npm ,并按照 “项目设置 ”部分中提供的说明设置配置文件。 如果还没有 .npmrc 文件,请在项目的根目录中创建一个新文件(与 package.json文件夹相同)。 打开新的 .npmrc 文件并粘贴所提供的代码片段。
登录到 Azure DevOps 组织,并导航到你的项目。
选择工件,从下拉菜单中选择源,然后选择连接到源。
从左侧导航窗格中选择 NuGet.exe ,然后复制 “项目设置” 部分中提供的 XML 代码片段。
在项目的根目录中创建新的 nuget.config 文件,并粘贴在上一步中复制的 XML 代码片段。
登录到 Azure DevOps 组织,并导航到你的项目。
选择工件,从下拉菜单中选择源,然后选择连接到源。
从左侧导航窗格中选择 pip 。
如果尚未创建虚拟环境,请创建虚拟环境。
将 pip.ini (Windows) 或 pip.conf (Mac/Linux) 文件添加到 virtualenv,并粘贴 Project 设置 部分中提供的代码片段。
登录到 Azure DevOps 组织,并导航到你的项目。
选择工件,从下拉菜单中选择源,然后选择连接到源。
从左侧导航窗格中选择 Maven 。
将项目设置部分中提供的代码片段添加到<repositories>和<distributionManagement>节中在你的pom.xml。 您的文件应看起来如下所示:
<repository>
<id>[FEED-NAME]</id>
<url>https://pkgs.dev.azure.com/[ORGANIZATION-NAME]/_packaging/[FEED-NAME]/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
将所提供的 <server> 代码片段粘贴到 settings.xml 文件中。 您的文件应类似于这样:
<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
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>[FEED-NAME]</id>
<username>[ORGANIZATION-NAME]</username>
<password>[PERSONAL_ACCESS_TOKEN]</password>
</server>
</servers>
</settings>
创建一个具有打包>范围的个人访问令牌,并将个人访问令牌粘贴到<password>中的settings.xml文件中。
登录到 Azure DevOps 组织,并导航到你的项目。
选择工件,从下拉菜单中选择源,然后选择连接到源。
从左侧导航窗格中选择 Gradle 。
将 Project 安装部分中提供的代码片段添加到 build.gradle 文件中的存储库和发布部分。 您的文件应如下所示:
maven {
url 'https://pkgs.dev.azure.com/[ORGANIZATION-NAME]/_packaging/[FEED-NAME]/maven/v1'
name '[FEED-NAME]'
authentication {
basic(BasicAuthentication)
}
}
将所提供的 <server> 代码片段粘贴到 settings.xml 文件中。 您的文件应如下所示:
<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
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>[FEED-NAME]</id>
<username>[ORGANIZATION-NAME]</username>
<password>[PERSONAL_ACCESS_TOKEN]</password>
</server>
</servers>
</settings>
使用 Packaging> 创建一个个人访问令牌。 将个人访问令牌粘贴到 <password>settings.xml 文件中的标记中。
登录到 Azure DevOps 组织并导航到项目。
选择工件,从下拉菜单中选择源,然后选择连接到源。
从左侧导航窗格中选择 “货物 ”。
将 Project 设置 部分中提供的代码片段添加到源存储库中的 cargo/config.toml 文件。
config.toml 文件应如下所示:
[registries]
FEED_NAME = { index = "sparse+https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/Cargo/index/" }
```
将 Project setup 部分中提供的第二个代码片段添加到 cargo/config.toml 文件中,以使用您的 feed 替换 crates.io 源。 您的文件应如下所示:
[source.crates-io]
replace-with = "FEED_NAME"
配置凭据提供程序
登录到注册表
恢复软件包
启用上游源并使用源进行身份验证后,请根据包类型选择相应的选项卡,并按照说明将包从公共注册表还原到 Azure Artifacts 源。
从项目中删除 node_modules 文件夹。
打开命令提示符窗口并运行以下命令以还原包。 完成后,您的源数据中应该存有从上游安装的任何软件包的已保存副本。
npm install --force
注意
使用 --force 标志可确保即使存在本地副本,也会从远程源拉取包。
清除本地缓存。
nuget locals -clear all
打开命令提示符窗口并运行以下命令以还原包。 完成后,您的源数据中应该存有从上游安装的任何软件包的已保存副本。
nuget.exe restore
从项目中删除 node_modules 文件夹。
打开命令提示符窗口并运行以下命令以还原包。 完成后,您的源数据中应该存有从上游安装的任何软件包的已保存副本。
npm install --force
注意
使用 --force 标志可确保即使存在本地副本,也会从远程源拉取包。
清除本地缓存。
nuget locals -clear all
打开命令提示符窗口并运行以下命令以还原包。 完成后,您的源数据中应该存有从上游安装的任何软件包的已保存副本。
nuget.exe restore
相关内容