Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
在摘要中使用上游來源可讓您從單一摘要管理應用程式相依性。 使用上游來源可讓您輕鬆地從公用登錄取用套件,同時防範中斷或遭入侵的套件。 您也可以將自己的套件發佈至相同的摘要,並在一個位置管理所有相依性。
本教學課程將逐步引導您如何在摘要上啟用上游來源,並從公用登錄取用套件,例如 NuGet.org 或 npmjs.com。
在此教學課程中,您需要:
- 建立新的摘要並啟用上游來源。
- 設定您的組態檔。
- 執行初始套件還原以填入您的摘要。
- 請檢查您的摘要,以檢視您從公用登錄取用之套件的已儲存複本。
建立摘要並啟用上游來源
登入您的 Azure DevOps 組織,然後瀏覽至您的專案。
選取 [ 成品],然後選取 [ 建立摘要 ] 以建立新的摘要。
提供摘要的名稱,然後選擇其可見性。 請確定您核取 [ 包含來自一般公用來源的 套件] 複選框以啟用上游來源,然後選取 [完成時建立 ]。
注意
若要將來自不同組織的摘要新增為上游來源,目標摘要擁有者必須透過流覽至 [摘要設定],[檢視] 節點,選取指定檢視右側的省略號按鈕,[編輯],然後與所有與我的 Microsoft Entra 租戶相關聯的組織中的摘要和人員共用目標檢視。
設定組態檔
既然我們已建立摘要,我們需要更新組態檔以指向我們的摘要。 若要這樣做,我們必須:
- 取得來源的 URL
- 更新組態檔
選取 工件,然後選取 連接到供應來源。
在頁面左側,選取 [npm] 索引標籤。
請遵循 Project 安裝程式一節中的指示來設定您的組態檔。
如果您還沒有 .npmrc 檔案,請在專案的根目錄中建立新的檔案(與package.json相同的資料夾中)。 開啟新的 .npmrc 檔案,並貼上您剛才在上一個步驟中複製的代碼段。
選取 工件,然後選取您的供稿。
選取 連線至摘要,然後選擇 NuGet.exe。
顯示如何連線至 NuGet 饋送的螢幕快照。
複製 [項目設定] 區段中的 XML 代碼段。
在專案的根目錄中建立名為 nuget.config 的新檔案。
將 XML 代碼段貼到組態檔中。
選取 [ 成品],然後從下拉式清單中選取您的摘要。
選取 連接至 feed,然後在 Python 區段選取 pip。
如果您尚未這麼做,請建立 虛擬環境 。
將pip.ini (Windows) 或 pip.conf (Mac/Linux) 檔案新增至 virtualenv,並貼上下列代碼段:
[global]
index-url=https://pkgs.dev.azure.com/ORGANIZATION-NAME/_packaging/FEED-NAME/pypi/simple/
選取 部件,然後從下拉式清單中選取您的資料流。
選取 連線至資料源,然後選取 Maven。
顯示如何使用 Maven 專案連接到資料匯入的螢幕快照。
將下列代碼段新增至 pom.xml 中的 <repositories>
和 <distributionManagement>
區段:
<repository>
<id>[FEED-NAME]</id>
<url>https://pkgs.dev.azure.com/[ORGANIZATION-NAME]/_packaging/[FEED-NAME]/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
將 <server>
新增至您的 settings.xml 檔案。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>[FEED-NAME]</id>
<username>[ORGANIZATION-NAME]</username>
<password>[PERSONAL_ACCESS_TOKEN]</password>
</server>
</servers>
</settings>
使用個人存取令牌,並為其設定套件>和讀取與寫入範圍,然後將您的個人存取令牌貼到<password>
settings.xml 檔案中的標籤中。
選取 [ 成品],然後從下拉式清單中選取您的摘要。
選取 [ 連線至摘要],然後選取 [Gradle]。
將下列代碼段新增至 build.gradle 檔案中的存放庫 和 發佈 區段:
maven {
url 'https://pkgs.dev.azure.com/[ORGANIZATION-NAME]/_packaging/[FEED-NAME]/maven/v1'
name '[FEED-NAME]'
authentication {
basic(BasicAuthentication)
}
}
將<server>
新增到您的settings.xml檔案中:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>[FEED-NAME]</id>
<username>[ORGANIZATION-NAME]</username>
<password>[PERSONAL_ACCESS_TOKEN]</password>
</server>
</servers>
</settings>
建立一個具有封裝和讀取及寫入範圍的個人存取權杖。 將您的個人存取令牌貼到 <password>
settings.xml檔案中的標記中。
還原套件
既然您已啟用上游來源並設定組態檔,我們可以執行套件還原命令來查詢上游來源並擷取上游套件。
從專案中移除node_modules資料夾,並在以提升權限打開的命令提示字元視窗中執行以下命令:
npm install --force
您的訊息流現在應該會有您從上游安裝的任何套件的已儲存複本。
注意
--force
參數將強制提取遠端,即使本機複本已存在。
清除本機快取:
nuget locals -clear all
還原 NuGet 套件:
nuget.exe restore
您現在的資訊流中應該包括您從上游安裝的任何套件的已儲存副本。
在您的項目目錄中執行下列命令:
dotnet restore --interactive
您的訂閱源現在應該已經有從上游安裝之套件的儲存副本。
在您的項目目錄中執行下列命令:
pip install
您的摘要現在應該會有您從上游安裝之任何套件的已儲存複本。
在您的項目目錄中執行下列命令:
mvn install
您的資料流現在應該有您從上游安裝的任何套件的已儲存副本。
在您的項目目錄中執行下列命令:
gradle build
您的資訊流現在應該會有上游安裝的套件已儲存的複本。
在您的項目目錄中執行下列命令:
cargo build
您的摘要現在應該會有您從上游安裝之任何套件的已儲存複本。
將 node_modules 資料夾從專案中移除,並在具有管理員權限的命令提示字元視窗中執行下列命令:
npm install --force
您的摘要現在應該會有您從上游安裝之任何套件的已儲存複本。
注意
即使本機複本存在,--force
參數仍會強制拉取遠端。
清除本機快取:
nuget locals -clear all
還原 NuGet 套件:
nuget.exe restore
您的摘要現在應該會有您從上游安裝之任何套件的已儲存複本。
在您的項目目錄中執行下列命令:
dotnet restore --interactive
您的動態消息現在應該已經儲存了您從上游安裝的任何套件的副本。
在您的項目目錄中執行下列命令:
pip install
您的資料流現在應該會有您從上游安裝之任何套件的儲存副本。
在您的項目目錄中執行下列命令:
mvn install
您的情報摘要現在應該包含您從上游安裝的任何套件的已儲存副本。
在您的項目目錄中執行下列命令:
gradle build
您的摘要現在應該有您從上游來源安裝的所有套件的已儲存複本。
相關文章