Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
El uso de orígenes ascendentes en su feed le permite administrar las dependencias de su aplicación desde un único feed. El uso de fuentes ascendentes facilita el consumo de paquetes desde registros públicos y ofrece protección contra fallos o paquetes comprometidos. También puede publicar sus propios paquetes en el mismo repositorio y gestionar todas las dependencias desde un solo lugar.
Este tutorial le guiará sobre cómo habilitar orígenes ascendentes en su feed y consumir paquetes de registros públicos, como NuGet.org o npmjs.com.
En este tutorial, aprenderá lo siguiente:
- Creación de una fuente y habilitación de orígenes ascendentes.
- Configure el archivo de configuración.
- Ejecute una restauración inicial del paquete para poblar su fuente.
- Revise su fuente para visualizar la copia guardada de los paquetes que utilizó del registro público.
Creación de una nueva fuente y habilitación de orígenes ascendentes.
Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.
Seleccione Artefactos y, a continuación, seleccione Crear fuente para crear una nueva fuente.
Proporcione un nombre para la fuente y elija su visibilidad. Asegúrese de activar la casilla Incluir paquetes de fuentes públicas comunes para habilitar fuentes ascendentes y, a continuación, seleccione Crear cuando haya terminado.
Nota:
Para agregar una fuente de otra organización como origen ascendente, el propietario de la fuente de destino debe compartir la vista de destino con Todas las fuentes y personas de organizaciones asociadas con mi inquilino de Microsoft Entra. Para ello, vaya a Configuración de fuente>Vistas>. Seleccione el botón de puntos suspensivos situado a la derecha para la vista especificada >Editar.
Configuración del archivo de configuración
Ahora que hemos creado nuestra fuente, es necesario actualizar el archivo de configuración para que apunte a nuestra fuente. Para ello, debemos hacer lo siguiente:
- Obtención de la dirección URL del origen
- Actualizar el archivo de configuración
Seleccione Artefactos y, a continuación, seleccione Conectar a la fuente.
En la parte izquierda de la página, seleccione la pestaña npm.
Siga las instrucciones de la sección Configuración del proyecto para configurar el archivo de configuración.
Si aún no tiene un archivo .npmrc , cree uno nuevo en la raíz del proyecto (en la misma carpeta que el package.json). Abra el nuevo archivo .npmrc y pegue el fragmento de código que acaba de copiar en el paso anterior.
Seleccione Artefactos y, a continuación, seleccione su canal.
Seleccione Conectar a la fuente y, a continuación, elija NuGet.exe.
Copie el fragmento de código XML en la sección Configuración del proyecto .
Cree un nuevo archivo denominado nuget.config en la raíz del proyecto.
Pegue el fragmento de código XML en el archivo de configuración.
Seleccione Artefactos y, a continuación, seleccione su feed en la lista desplegable.
Seleccione Conectar a fuente y, a continuación, seleccione pip en la sección de Python.
Cree un entorno virtual si aún no lo ha hecho.
Agregue un archivo pip.ini (Windows) o pip.conf (Mac/Linux) a su virtualenv y pegue el siguiente fragmento de código:
[global]
index-url=https://pkgs.dev.azure.com/ORGANIZATION-NAME/_packaging/FEED-NAME/pypi/simple/
Seleccione Artefactos y, a continuación, seleccione su feed en la lista desplegable.
Seleccione Conectar a la fuente y, a continuación, seleccione Maven.
Agregue el siguiente fragmento de código a las secciones <repositories>
y <distributionManagement>
en su 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>
Agregue un <server>
elemento al archivo de 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>
Cree un token de acceso personal con empaquetado> y ámbitos de lectura y escritura, y pegue su token de acceso personal en la etiqueta <password>
del archivo settings.xml.
Seleccione Artefactos y, a continuación, seleccione su feed en la lista desplegable.
Seleccione Conectar a fuente y, a continuación, seleccione Gradle.
Agregue el siguiente código de ejemplo a las secciones repositories y publishing en el archivo build.gradle:
maven {
url 'https://pkgs.dev.azure.com/[ORGANIZATION-NAME]/_packaging/[FEED-NAME]/maven/v1'
name '[FEED-NAME]'
authentication {
basic(BasicAuthentication)
}
}
Agregue un <server>
elemento al archivo de 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>
Crear un token de acceso personal con Empaquetado>Alcance de lectura y escritura. Pegue el token de acceso personal en la <password>
etiqueta del archivo settings.xml.
Restaurar paquetes
Ahora que ha habilitado orígenes ascendentes y configurado el archivo de configuración, ahora puede ejecutar el comando de restauración de paquetes para consultar el origen ascendente y recuperar los paquetes ascendentes.
Para restaurar paquetes mediante Azure Pipelines en su lugar, consulte Restauración de paquetes de Maven con Azure Pipelines (YAML/clásico) para ver los pasos detallados.
Elimine la carpeta node_modules de su proyecto y ejecute el siguiente comando en una ventana del símbolo del sistema con privilegios elevados.
npm install --force
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Nota:
El argumento --force
forzará la extracción remota incluso si existe una copia local.
Borre la caché local:
nuget locals -clear all
Restaure los paquetes NuGet:
nuget.exe restore
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
dotnet restore --interactive
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
pip install
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
mvn install
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
gradle build
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
cargo build
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Elimine la carpeta node_modules de su proyecto y ejecute el siguiente comando en una ventana del símbolo del sistema con privilegios elevados.
npm install --force
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Nota:
El argumento --force
forzará la extracción remota incluso si existe una copia local.
Borre la caché local:
nuget locals -clear all
Restaure los paquetes NuGet:
nuget.exe restore
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
dotnet restore --interactive
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
pip install
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
mvn install
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Ejecute el siguiente comando en el directorio del proyecto:
gradle build
Su canal ahora debería tener una copia guardada de cualquier paquete que instaló desde la fuente.
Artículos relacionados