자습서: 업스트림 원본을 사용하는 방법
이 문서의 내용
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을 선택합니다 .
pom.xml 섹션 및 <distributionManagement>
섹션에 <repositories>
다음 코드 조각을 추가합니다.
<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>
패키징>읽기 및 쓰기 범위를 사용하여 개인 액세스 토큰 을 만들고 개인 액세스 토큰을 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)
}
}
<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>
개인 액세스 토큰을 붙여넣습니다.
패키지 복원
이제 업스트림 원본을 사용하도록 설정하고 구성 파일을 설정했으므로 패키지 복원 명령을 실행하여 업스트림 원본을 쿼리하고 업스트림 패키지를 검색할 수 있습니다.
프로젝트에서 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
이제 피드에 업스트림에서 설치한 패키지의 저장된 복사본이 있어야 합니다.
관련된 문서