套件概念 - Amazon CodeCatalyst

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

套件概念

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

套件

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

套件包含:

  • 名稱 (例如, webpack 是熱門 npm 套件的名稱)

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

  • 一組版本 (例如 、1.0.01.0.11.0.2

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

套件命名空間

有些套件格式支援階層式套件名稱,可將套件組織到邏輯群組中,並協助避免名稱衝突。具有相同名稱的套件可以存放在不同的命名空間中。例如,npm 支援範圍,而 npm 套件@types/node具有 的範圍@types和 的名稱node@types 範圍內有許多其他套件名稱。在 中 CodeCatalyst,範圍 (「類型」) 稱為套件命名空間,而名稱 (「節點」) 稱為套件名稱。對於 Maven 套件,套件命名空間對應至 Maven groupID 。Maven 套件org.apache.logging.log4j:log4j具有 的 groupID (套件命名空間) org.apache.logging.log4j和 artifactID (套件名稱) log4j。Python 等某些套件格式不支援階層式名稱,其概念類似於 npm 範圍或 Maven groupID 。如果您沒有將套件名稱分組的方法,可能更難避免名稱衝突。

套件版本

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

資產

資產是存放在 中的個別檔案 CodeCatalyst ,與套件版本相關聯,例如 npm .tgz 檔案或 Maven POM或 JAR 檔案。

套件儲存庫

CodeCatalyst 套件儲存庫包含一組套件 ,其中包含套件版本 ,每個都對應到一組資產 。套件儲存庫是多槽儲存庫,這表示單一儲存庫可以包含任何支援類型的套件。每個套件儲存庫都會公開端點,以便使用 CLIs(nugetdotnet)、CLI、Maven npm CLI(mvn) 和 Python CLIs(pip 和 ) 等 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 Plugins 的 Maven 套件。

  • nuget-gallery-gateway 從 NuGet 圖庫提供 NuGet 套件。

  • pypi-gateway 提供 Python 套件索引中的 Python 套件。