數据包概念 - Amazon CodeCatalyst

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

數据包概念

以下是在中管理、發佈或使用套件時應瞭解的一些概念和術語 CodeCatalyst。

套件

套件是含安裝軟體和解決任何相依性所需的軟體和中繼資料的套裝軟體。 CodeCatalyst 支持 npm 軟件包格式。

一個軟件包包括:

  • 名稱 (例如,webpack是常用 npm 套件的名稱)

  • 選用的命名空間 (例如,@types在中@types/node)

  • 一組版本 (例如1.0.01.0.11.0.2)

  • 套件層級中繼資料 (例如 npm dist 標籤)

Package 命名空間

某些套件格式支援階層式套件名稱,可將套件組織成邏輯群組,並協助避免名稱衝突。具有相同名稱的套件可以儲存在不同的命名空間中。例如,npm 支援範圍,而 npm 套件@types/node的範圍@types和名稱為node. @types範圍中還有許多其他軟件包名稱。在中 CodeCatalyst,範圍(「類型」)被稱為包命名空間,並且名稱(「節點」)被稱為包名稱。對於 Maven 包,包命名空間對應於 Maven 的組 ID。Maven 套件org.apache.logging.log4j:log4j具有的群組 ID (套件命名空間) org.apache.logging.log4j 和文件 ID (套件名稱)。log4j某些套件格式 (例如 Python) 不支援階層式名稱,其概念類似於 npm 範圍或 Maven 群組 ID。如果您沒有辦法對軟件包名稱進行分組,則避免名稱衝突可能會更加困難。

Package 版本

套件版本可識別套件的特定版本,例如@types/node@12.6.9。不同套件格式的版本號碼格式和語意會有所不同。例如,npm 套件版本必須符合語意版本控制規格。在中 CodeCatalyst,套件版本包含版本識別碼、中 package-version-level 繼資料和一組資產。

資產

資產是存儲在 CodeCatalyst 與包版本,如 NPM 文件或 Maven POM 或.tgz文件相關聯的單個JAR文件。

Package 儲存庫

套件儲存庫 CodeCatalyst 包含一組套件,其中包含套件版本,每個套件版本都會對應至一組資產。Package 件儲存庫是 polyglot,這意味著單一儲存庫可以包含任何受支援類型的套件。每個套件存放庫都會公開端點,以便使用 NuGet CLIs (nuget,dotnet)、、Maven () 和 Python CLI CLIs (pipmvn) 等工具擷取和發佈套件。npm CLI twine如需中套件配額的相關資訊 CodeCatalyst,包括每個空間可以建立多少套裝程式儲存庫,請參閱套件配額

您可以將套件存放庫設定為上游,將套件存放庫連結至另一個套件儲存 將存放庫設定為上游時,您可以使用上游的任何套件以及鏈結中的任何其他上游存放庫。如需詳細資訊,請參閱上游儲存庫

Gateway 軟體庫是一種特殊類型的套件儲存庫,可從官方的外部套件授權單位提取和儲存套件。如需詳細資訊,請參閱閘道儲存庫

上游儲存庫

您可以使用 CodeCatalyst 在兩個套裝程式儲存庫之間建立上游關係。當套裝程式儲存區域所包含的套裝程式版本可以從下存放庫的套裝程式儲存區域端點存取時,套裝程式儲存區域就是另一個 有了上游關係,兩個套裝程式儲存庫的內容會從用戶端的角度來有效地合併。

例如,如果套件管理員要求的套件版本不存在於儲存庫中,則 CodeCatalyst 會搜尋已設定的上游儲存庫以尋找套件版本。上游儲存庫會依照設定的順序進行搜尋,一旦找到套件,就 CodeCatalyst 會停止搜尋。

閘道儲存庫

閘道儲存庫是一種特殊類型的套件儲存庫,連接到受支援的外部官方套件授權單位。當您將閘道儲存庫新增為上游存放庫時,您可以使用來自對應官方套件授權單位的套件。您的下游存放庫不會與公用存放庫通訊,而是由閘道儲存庫中介所有項目。以這種方式使用的套件會儲存在收到原始要求的閘道儲存庫和下游存放庫中。

閘道儲存庫已預先定義,但必須在每個專案中建立才能使用。下列清單包含可在其中建立的每個閘道儲存庫,以 CodeCatalyst 及它們所連線的套件授權單位。

  • npm-public-registry-gateway提供來自 NPM 的套件。

  • maven-central-gateway提供從 Maven 中央存儲庫的 Maven 包。

  • google-android-gateway提供從谷歌安卓 Maven 軟件包。

  • 通用網關提供的 Maven 軟件包。 CommonsWare

  • gradle-plugins-gateway提供從搖籃插件 Maven 包。

  • nuget-gallery-gateway提供來自「 NuGet 圖庫」的 NuGet 套件。

  • pypi 網關提供了從 Python 包索引的 Python 軟件 Package。