패키지 개념 - Amazon CodeCatalyst

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

패키지 개념

다음은 에서 패키지를 관리, 게시 또는 사용할 때 알아야 할 몇 가지 개념 및 용어입니다 CodeCatalyst.

패키지

패키지는 소프트웨어를 설치하고 종속성을 해결하는 데 필요한 소프트웨어와 메타데이터를 모두 포함하는 번들입니다. 는 npm 패키지 형식을 CodeCatalyst 지원합니다.

패키지는 다음으로 구성됩니다.

  • 이름(예: 인기 있는 npm 패키지의 webpack 이름)

  • 선택적 네임스페이스(예: @types@types/node)

  • 버전 세트(예: , 1.0.01.0.1, 1.0.2)

  • 패키지 수준 메타데이터(예: npm dist 태그)

패키지 네임스페이스

일부 패키지 형식은 계층적 패키지 이름을 지원하여 패키지를 논리적 그룹으로 구성하고 이름 충돌을 방지합니다. 이름이 같은 패키지는 다른 네임스페이스에 저장할 수 있습니다. 예를 들어 npm은 범위를 지원하며 npm 패키지@types/node의 범위는 @types 및 이름은 입니다node. @types 범위에는 다른 패키지 이름이 많습니다. 에서는 범위(“유형”) CodeCatalyst를 패키지 네임스페이스라고 하고 이름(“노드”)을 패키지 이름이라고 합니다. Maven 패키지의 경우 패키지 네임스페이스는 Maven groupID에 해당합니다. org.apache.logging.log4j:log4j Maven 패키지에는 org.apache.logging.log4j groupID(패키지 네임스페이스)와 log4j artifactID(패키지 이름)가 있습니다. Python과 같은 일부 패키지 형식은 npm 범위 또는 Maven groupID 와 유사한 개념을 가진 계층적 이름을 지원하지 않습니다. 패키지 이름을 그룹화할 방법이 없는 경우 이름 충돌을 방지하는 것이 더 어려울 수 있습니다.

패키지 버전

패키지 버전은 패키지의 특정 버전(예: @types/node@12.6.9)을 식별합니다. 버전 번호 형식과 의미 체계는 패키지 형식에 따라 다릅니다. 예를 들어, npm 패키지 버전은 의미 체계 버전 관리 사양을 준수해야 합니다. 에서 CodeCatalyst패키지 버전은 버전 식별자, package-version-level 메타데이터 및 자산 세트로 구성됩니다.

자산

자산은 에 저장된 개별 파일로, npm 파일 또는 Maven POM 또는 .tgz 파일과 같은 패키지 버전과 CodeCatalyst 연결됩니다JAR.

패키지 리포지토리

CodeCatalyst 패키지 리포지토리에는 패키지 버전 가 포함된 패키지 세트가 포함되어 있으며, 각 패키지 리포지토리는 자산 세트 에 매핑됩니다. 패키지 리포지토리는 폴리글롯으로, 단일 리포지토리에 지원되는 모든 유형의 패키지가 포함될 수 있습니다. 각 패키지 리포지토리는 (nuget, dotnet), npm , CLIMaven CLIs (), Python CLI pip ( CLIs 및 mvn)과 같은 NuGet 도구를 사용하여 패키지를 가져오고 게시하기 위한 엔드포인트를 노출합니다twine. 각 공간에서 생성할 수 있는 패키지 리포지토리 수를 CodeCatalyst포함하여 의 패키지 할당량에 대한 자세한 내용은 섹션을 참조하세요패키지 할당량.

업스트림으로 설정하여 패키지 리포지토리를 다른 리포지토리에 연결할 수 있습니다. 리포지토리가 업스트림으로 설정된 경우 업스트림의 모든 패키지와 체인의 추가 업스트림 리포지토리를 사용할 수 있습니다. 자세한 내용은 업스트림 리포지토리 단원을 참조하십시오.

게이트웨이 리포지토리는 공식 외부 패키지 기관에서 패키지를 가져와 저장하는 특별한 유형의 패키지 리포지토리입니다. 자세한 내용은 게이트웨이 리포지토리 단원을 참조하십시오.

업스트림 리포지토리

CodeCatalyst 를 사용하여 두 패키지 리포지토리 간에 업스트림 관계를 생성할 수 있습니다. 패키지 리포지토리는 패키지 리포지토리의 패키지 리포지토리 엔드포인트에서 패키지 리포지토리에 포함된 패키지 버전에 액세스할 수 있는 경우 다른 리포지토리의 업스트림입니다. 업스트림 관계를 사용하면 두 패키지 리포지토리의 내용이 클라이언트의 관점에서 효과적으로 병합됩니다.

예를 들어 패키지 관리자가 리포지토리에 없는 패키지 버전을 요청하는 경우 CodeCatalyst 는 패키지 버전에 대해 구성된 업스트림 리포지토리를 검색합니다. 업스트림 리포지토리는 구성된 순서대로 검색되며 패키지가 발견되면 검색이 중지 CodeCatalyst 됩니다.

게이트웨이 리포지토리

게이트웨이 리포지토리는 지원되는 외부 공식 패키지 권한에 연결되는 특별한 유형의 패키지 리포지토리입니다. 게이트웨이 리포지토리를 업스트림 리포지토리로 추가할 때 해당 공식 패키지 권한의 패키지를 사용할 수 있습니다. 다운스트림 리포지토리는 퍼블릭 리포지토리와 통신하지 않으며, 대신 모든 것이 게이트웨이 리포지토리에 의해 중간화됩니다. 이러한 방식으로 사용되는 패키지는 게이트웨이 리포지토리와 원래 요청을 받은 다운스트림 리포지토리 모두에 저장됩니다.

게이트웨이 리포지토리는 사전 정의되어 있지만 사용할 각 프로젝트에서 생성해야 합니다. 다음 목록에는 에서 생성할 수 있는 모든 게이트웨이 리포지토리 CodeCatalyst 와 해당 게이트웨이가 연결된 패키지 권한이 포함되어 있습니다.

  • npm-public-registry-gateway 는 npmjs.com npm 패키지를 제공합니다.

  • maven-central-gateway 는 Maven Central 리포지토리의 Maven 패키지를 제공합니다.

  • google-android-gateway 는 Google Android의 Maven 패키지를 제공합니다.

  • commonsware-gateway는 의 Maven 패키지를 제공합니다 CommonsWare.

  • gradle-plugins-gateway 는 Gradle 플러그인의 Maven 패키지를 제공합니다.

  • nuget-gallery-gateway 는 NuGet 갤러리의 NuGet 패키지를 제공합니다.

  • pypi-gateway는 Python 패키지 인덱스에서 Python 패키지를 제공합니다.