分享方式:


Azure Artifacts 中的套件圖形

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

發行套件時,請務必從上游來源取用該套件的所有相依性,以確保該套件的所有相依性都可以在摘要中使用。 當您從上游來源取用套件之後,就會將複本儲存到您的摘要。 這可確保即使上游來源變成無法存取,您的復本仍可供您和摘要取用者使用。

上游如何建構一組可用的套件

由於 Azure Artifacts 摘要可以有其他摘要做為上游,因此有可能建立上游來源的迴圈,其中摘要 A 上游以饋送 B,其中上游要饋送 C,最後將 C 上游送回給 A。這類迴圈若未正確管理,可能會導致套件要求發生問題、建立無限迴圈,其中使用者向摘要 A 要求套件、來自 B 的要求、來自 C 的要求,最後 C 要求回到 A,形成迴圈。

上游來源的設計目的是要防止這類情況。 當摘要從其上游來源查閱套件時,它會在針對該上游來源設定的檢視中接收套件。 這表示查詢摘要 A 不會觸發可轉移的查詢來饋送 C (A -> B -> C),因為檢視是唯讀的。 因此,摘要 A 將可存取先前由使用者儲存到 B 的任何 C 套件,但無法存取 C可用的完整套件集。

這會讓摘要 B 負責確保其本機套件代表完整的相依性圖表。 如此一來,透過另一個摘要的上游來源取用 B 套件的使用者可以成功解決圖形,並安裝其所需的 B 套件,而不會發生問題。

範例:建構一組可用的套件

讓我們考慮三個摘要:Fabrikam、Contoso 和 AdventureWorks。 在此圖中,我們會在引進上游來源時,檢查 Fabrikam 摘要的可用套件。

一開始,Fabrikam 沒有上游來源,可讓用戶連線到 Fabrikam,只安裝 1.0.0 版和 2.0.0 版小工具套件。 同樣地,Contoso 沒有上游來源,限制連線到 Contoso 的使用者只安裝 Gizmos 套件 1.0.0 和 3.0.0 版。 這同樣適用於 AdventureWorks 摘要,其中連線的使用者只能安裝 1.0.0 和 2.0.0 版的小工具套件或 Things 套件 1.0.0 版。

圖例顯示沒有上游來源的三個不同的摘要。

現在,讓我們探索 Contoso 將 AdventureWorks 新增為上游來源的案例。 當用戶連線到 Contoso 時,他們可存取更廣泛的套件。 他們可以安裝任何版本的 Gizmos、小工具或事物。 例如,如果使用者安裝 Gadgets@2.0.0,此特定套件版本會儲存至 Contoso,並連結回 AdventureWorks。

Contoso 將 AdventureWorks 新增為上游來源的圖例。

現在,讓我們考慮 Fabrikam 摘要將 Contoso 新增為上游來源的情況。 聯機至 Fabrikam 的使用者可以安裝任何版本的 Widget、任何 Gizmos 版本,但 僅限儲存 的小工具版本 (2.0.0)。

Fabrikam 將 Contoso 新增為上游來源的圖例。

使用者將無法安裝 1.0.0 版小工具或任何版本的 Things,因為這些套件版本尚未由 Contoso 使用者儲存到 Contoso。

Fabrikam 使用者可用的套件圖例。