教程:如何使用上游源
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
使用源中的上游源,可以从单个源管理应用程序依赖项。 使用上游源可以轻松使用公共注册表中的包,同时防范服务中断或包泄露。 还可以将自己的包发布到同一源,并在一个位置管理所有依赖项。
本教程将指导你了解如何在源上启用上游源,以及从公共注册表(如 NuGet.org 或 npmjs.com)使用包。
在本教程中,将:
- 创建新的源并启用上游源。
- 设置配置文件。
- 运行初始包还原以填充源。
- 检查源以查看从公共注册表使用的包的已保存副本。
创建源并启用上游源
登录到 Azure DevOps 组织,并导航到你的项目。
选择 “项目”,然后选择“创建源” 以创建新源 。
提供源的名称,并选择其可见性。 请确保选中“包括公共源中的包”复选框以启用上游源,然后在完成后选择“创建”。
注意
若要将来自其他组织的源添加为上游源,目标源所有者必须通过导航到“源设置>视图”选择指定视图“编辑右侧的省略号按钮,与我Microsoft Entra 租户关联的组织中所有源和人员共享目标视图>>。
设置配置文件
创建源后,需要更新配置文件以指向源。 为此,我们必须:
- 获取源的 URL
- 更新配置文件
选择 “项目”,然后选择“ 连接到源”。
在页面左侧,选择 npm 选项卡。
按照“项目设置”部分中的说明设置配置文件。
如果还没有 .npmrc 文件,请在项目的根目录中创建一个新文件(与package.json位于同一文件夹中)。 打开新的 .npmrc 文件,并粘贴在上一步中刚刚复制的代码片段。
选择“项目”,然后选择源。
选择“ 连接到源”,然后选择 NuGet.exe。
复制 “项目设置” 部分中的 XML 代码片段。
在项目的根目录中创建名为 nuget.config 的新文件。
将 XML 代码片段粘贴到配置文件中。
选择“项目”,然后从下拉列表中选择源。
选择“ 连接到源”,然后在“Python”部分下选择 pip 。
如果尚未创建虚拟环境,请创建虚拟环境。
将 pip.ini (Windows) 或 pip.conf (Mac/Linux) 文件添加到 virtualenv 并粘贴以下代码片段:
[global]
index-url=https://pkgs.dev.azure.com/ORGANIZATION-NAME/_packaging/FEED-NAME/pypi/simple/
选择“项目”,然后从下拉列表中选择源。
选择“ 连接到源”,然后选择“ Maven”。
将以下代码片段添加到 <repositories>
pom.xml中的节 <distributionManagement>
:
<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>
将 a <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>
使用打包>读取和写入范围创建个人访问令牌,并将个人访问令牌粘贴到settings.xml文件中的<password>
标记中。
选择“项目”,然后从下拉列表中选择源。
选择“ 连接到源”,然后选择“ Gradle”。
将以下代码片段添加到 build.gradle 文件中的 存储库 和 发布 部分:
maven {
url 'https://pkgs.dev.azure.com/[ORGANIZATION-NAME]/_packaging/[FEED-NAME]/maven/v1'
name '[FEED-NAME]'
authentication {
basic(BasicAuthentication)
}
}
将 a <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文件中的标记中。
还原包
启用上游源并设置配置文件后,我们可以运行包还原命令来查询上游源并检索上游包。
从项目中删除node_modules文件夹,并在提升的命令提示符窗口中运行以下命令:
npm install --force
源现在应具有从上游安装的任何包的已保存副本。
注意
即使存在本地副本,该 --force
参数也会强制拉取远程服务器。
清除本地缓存:
nuget locals -clear all
还原 NuGet 包:
nuget.exe restore
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
dotnet restore --interactive
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
pip install
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
mvn install
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
gradle build
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
cargo build
源现在应具有从上游安装的任何包的已保存副本。
从项目中删除node_modules文件夹,并在提升的命令提示符窗口中运行以下命令:
npm install --force
源现在应具有从上游安装的任何包的已保存副本。
注意
即使存在本地副本,该 --force
参数也会强制拉取远程服务器。
清除本地缓存:
nuget locals -clear all
还原 NuGet 包:
nuget.exe restore
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
dotnet restore --interactive
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
pip install
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
mvn install
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
gradle build
源现在应具有从上游安装的任何包的已保存副本。
从项目中删除node_modules文件夹,并在提升的命令提示符窗口中运行以下命令:
npm install --force
源现在应具有从上游安装的任何包的已保存副本。
注意
即使存在本地副本,该 --force
参数也会强制拉取远程服务器。
清除本地缓存:
nuget locals -clear all
还原 NuGet 包:
nuget.exe restore
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
pip install
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
mvn install
源现在应具有从上游安装的任何包的已保存副本。
在项目目录中运行以下命令:
gradle build
源现在应具有从上游安装的任何包的已保存副本。
相关文章