View a markdown version of this page

Paketkonzepte - Amazon CodeCatalyst

Amazon CodeCatalyst ist nicht mehr offen für neue Kunden. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter Wie migriert man von CodeCatalyst.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Paketkonzepte

Im Folgenden finden Sie einige Konzepte und Begriffe, die Sie bei der Verwaltung, Veröffentlichung oder Nutzung von Paketen in kennen sollten CodeCatalyst.

Pakete

Ein Paket ist ein Paket, das sowohl die Software als auch die Metadaten enthält, die für die Installation der Software und die Auflösung aller Abhängigkeiten erforderlich sind. CodeCatalyst unterstützt das NPM-Paketformat.

Ein Paket besteht aus:

  • Ein Name (webpackist zum Beispiel der Name eines beliebten npm-Pakets)

  • Ein optionaler Namespace (z. B. @types in) @types/node

  • Eine Reihe von Versionen (z. B., 1.0.01.0.1,1.0.2)

  • Package-level Metadaten (zum Beispiel npm dist-Tags)

Paket-Namespaces

Einige Paketformate unterstützen hierarchische Paketnamen, um Pakete in logische Gruppen zu organisieren und Namenskollisionen zu vermeiden. Pakete, die denselben Namen haben, können in verschiedenen Namespaces gespeichert werden. Zum Beispiel unterstützt npm Bereiche, und das npm-Paket @types/node hat den Gültigkeitsbereich und den Namen. @types node Es gibt viele andere Paketnamen im Geltungsbereich. @types In CodeCatalyst wird der Gültigkeitsbereich („Typen“) als Paket-Namespace bezeichnet, und der Name („Knoten“) wird als Paketname bezeichnet. Bei Maven-Paketen entspricht der Paket-Namespace der Maven-GroupID. Das Maven-Paket org.apache.logging.log4j:log4j hat eine GroupID (Paket-Namespace) von org.apache.logging.log4j und die ArtifactID (Paketname). log4j Einige Paketformate wie Python unterstützen keine hierarchischen Namen mit einem ähnlichen Konzept wie npm scope oder Maven GroupId. Wenn Sie keine Möglichkeit haben, Paketnamen zu gruppieren, kann es schwieriger sein, Namenskollisionen zu vermeiden.

Paketversionen

Eine Paketversion identifiziert die spezifische Version eines Pakets, z. B. @types/node@12.6.9 Das Format und die Semantik der Versionsnummer variieren je nach Paketformat. Beispielsweise müssen NPM-Paketversionen der Semantic Versioning-Spezifikation entsprechen. In CodeCatalyst besteht eine Paketversion aus der Versionskennung, Metadaten auf Paketversionsebene und einer Reihe von Assets.

Objekte

Ein Asset ist eine einzelne Datei CodeCatalyst , die in einer Paketversion gespeichert ist, z. B. einer .tgz NPM-Datei oder einer Maven-POM- oder JAR-Datei.

Paket-Repositorys

Ein CodeCatalyst Paket-Repository enthält eine Reihe von Paketen, die Paketversionen enthalten, von denen jede einer Gruppe von Assets zugeordnet ist. Paket-Repositorys sind polyglot, was bedeutet, dass ein einzelnes Repository Pakete aller unterstützten Typen enthalten kann. Jedes Paket-Repository stellt Endpunkte für das Abrufen und Veröffentlichen von Paketen mithilfe von Tools wie den NuGet CLIs (nuget,dotnet), der CLI, der Maven npm CLI () und den Python-CLIs (undmvn) zur Verfügung. pip twine Informationen über Paketkontingente CodeCatalyst, einschließlich der Anzahl der Paket-Repositorys, die in jedem Bereich erstellt werden können, finden Sie unter. Kontingente für Pakete

Sie können ein Paket-Repository mit einem anderen verknüpfen, indem Sie es als Upstream-Repository festlegen. Wenn ein Repository als Upstream-Repositorium festgelegt ist, können Sie jedes Paket aus dem Upstream-Repositorium sowie alle zusätzlichen Upstream-Repositorys in der Kette verwenden. Weitere Informationen finden Sie unter Upstream-Repositorys.

Gateway-Repositorys sind eine spezielle Art von Paket-Repositorys, die Pakete von offiziellen externen Paketverwaltungen abrufen und speichern. Weitere Informationen finden Sie unter Gateway-Repositorys.

Upstream-Repositorys

Sie können es verwenden CodeCatalyst , um eine Upstream-Beziehung zwischen zwei Paket-Repositorys herzustellen. Ein Paket-Repository ist ein Upstream-Repository eines anderen, wenn auf die darin enthaltenen Paketversionen vom Paket-Repository-Endpunkt des Downstream-Repositorys aus zugegriffen werden kann. Bei einer Upstream-Beziehung werden die Inhalte der beiden Paket-Repositorys aus der Sicht eines Kunden effektiv zusammengeführt.

Wenn beispielsweise ein Paketmanager eine Paketversion anfordert, die in einem Projektarchiv nicht existiert, durchsucht er CodeCatalyst die konfigurierten Upstream-Repositorys nach der Paketversion. Upstream-Repositorys werden in der Reihenfolge durchsucht, in der sie konfiguriert sind. Sobald ein Paket gefunden wurde, CodeCatalyst wird die Suche beendet.

Gateway-Repositorys

Ein Gateway-Repository ist eine spezielle Art von Paket-Repositorium, das mit einer unterstützten externen, offiziellen Paketautorität verbunden ist. Wenn Sie ein Gateway-Repository als Upstream-Repository hinzufügen, können Sie Pakete von der entsprechenden offiziellen Paketautorität konsumieren. Ihr Downstream-Repository kommuniziert nicht mit dem öffentlichen Repository, stattdessen wird alles durch das Gateway-Repository vermittelt. Auf diese Weise verbrauchte Pakete werden sowohl im Gateway-Repository als auch im Downstream-Repository gespeichert, das die ursprüngliche Anfrage erhalten hat.

Gateway-Repositorys sind vordefiniert, müssen jedoch in jedem Projekt erstellt werden, um verwendet zu werden. Die folgende Liste enthält alle Gateway-Repositorys, in denen sie erstellt werden können, CodeCatalyst und die Package Authority, mit der sie verbunden sind.

  • npm-public-registry-gateway stellt npm-Pakete von npmjs.com bereit.

  • maven-central-gateway stellt Maven-Pakete aus dem Maven Central-Repository bereit.

  • google-android-gateway stellt Maven-Pakete von Google Android bereit.

  • commonsware-gateway bietet Maven-Pakete von. CommonsWare

  • gradle-plugins-gateway stellt Maven-Pakete von Gradle Plugins bereit.

  • nuget-gallery-gateway stellt NuGet Pakete aus der NuGet Galerie bereit.

  • pypi-gateway stellt Python-Pakete aus dem Python-Paketindex bereit.