

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 設定和使用 mvn
<a name="packages-maven-mvn"></a>

您可以使用 `mvn`命令來執行 Maven 組建。您必須`mvn`將 設定為使用套件儲存庫，並提供個人存取字符 (PAT) 進行身分驗證。

**Contents**
+ [從 CodeCatalyst 擷取相依性](#mvn-fetch-dependencies)
+ [透過 CodeCatalyst 從外部套件儲存庫擷取套件](#mvn-install-public)
+ [將套件發佈至 CodeCatalyst](#mvn-publish-packages)
+ [發佈第三方套件](#publishing-third-party-packages)

## 從 CodeCatalyst 擷取相依性
<a name="mvn-fetch-dependencies"></a>

若要`mvn`設定 從 CodeCatalyst 儲存庫擷取相依性，您必須編輯 Maven 組態檔案，`settings.xml`以及選擇性地編輯專案的專案模型物件 (POM) 檔案。POM 檔案包含 Maven 建置專案的專案和組態資訊，例如相依性、建置目錄、來源目錄、測試來源目錄、外掛程式和目標。

**使用 `mvn` 從 CodeCatalyst 套件儲存庫擷取相依性**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 在專案的概觀頁面上，選擇**套件**。

1. 從套件儲存庫清單中選擇套件儲存庫。

1. 選擇**連線至儲存庫**。

1. 在**連線至儲存庫**對話方塊中，從套件管理員用戶端清單中選擇 **mvn**。

1. 您需要個人存取字符 (PAT) 來`mvn`驗證 CodeCatalyst。如果您已經有，則可以使用它。如果沒有，您可以在這裡建立一個。

   1. 選擇**建立權杖**。

   1. 選擇**複製**以複製您的 PAT。
**警告**  
關閉對話方塊後，您將無法再次查看或複製 PAT。

1. 將包含儲存庫的設定檔新增至 `settings.xml` 檔案。取代下列值。
**注意**  
如果從主控台指示複製，則應為您更新下列值，且不應變更。
   + 將 *space\$1name* 取代為您的 CodeCatalyst 空間名稱。
   + 將 *proj\$1name* 取代為您的 CodeCatalyst 專案名稱。
   + 將 *repo\$1name* 取代為您的 CodeCatalyst 套件儲存庫名稱。

   ```
   <profiles>
     <profile>
       <id>repo_name</id>
       <activation>
           <activeByDefault>true</activeByDefault>
       </activation>
       <repositories>
           <repository>
             <id>repo_name</id>
             <url>https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/</url>
           </repository>
       </repositories>
     </profile>
   </profiles>
   ```

1. 將伺服器新增至 `settings.xml` 檔案中的伺服器清單。取代下列值。
**注意**  
如果從主控台指示複製，則應為您更新下列值，且不應變更。
   + 將 *repo\$1name* 取代為您的 CodeCatalyst 套件儲存庫名稱。
   + 將*使用者名稱*取代為您的 CodeCatalyst 使用者名稱。
   + 將 *PAT* 取代為您的 CodeCatalyst PAT。

   ```
   <servers>
     <server>
       <id>repo_name</id>
       <username>username</username>
       <password>PAT</password>
     </server>
   </servers>
   ```

1. （選用） 在`settings.xml`檔案中設定鏡像，擷取所有連線並將其路由到您的儲存庫，而非閘道儲存庫。
**注意**  
如果從主控台指示複製，則應為您更新下列值，且不應變更。
   + 將 *space\$1name* 取代為您的 CodeCatalyst 空間名稱。
   + 將 *proj\$1name* 取代為您的 CodeCatalyst 專案名稱。
   + 將 *repo\$1name* 取代為您的 CodeCatalyst 套件儲存庫名稱。

   ```
   <mirrors>
     <mirror>
       <id>repo_name</id>
       <name>repo_name</name>
       <url>https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/</url>
       <mirrorOf>*</mirrorOf>
     </mirror>
   </mirrors>
   ```

**重要**  
您可以在 `<id>`元素中使用任何值，但在 `<server>`和 `<repository>`元素中必須相同。這可讓指定的登入資料包含在對 CodeCatalyst 的請求中。

進行這些組態變更後，您可以建置專案。

```
mvn compile
```

## 透過 CodeCatalyst 從外部套件儲存庫擷取套件
<a name="mvn-install-public"></a>

您可以透過 CodeCatalyst 儲存庫從公有儲存庫安裝 Maven 套件，方法是使用代表閘道儲存庫的閘道上游連線進行設定。從閘道儲存庫安裝的套件會擷取並儲存在 CodeCatalyst 儲存庫中。

目前，CodeCatalyst 支援下列公有 Maven 套件儲存庫。
+ maven-central-gateway
+ google-android-gateway
+ gradle-plugins-gateway
+ commonsware-gateway

**從公有 Maven 套件儲存庫安裝套件**

1. 如果您尚未設定 ，請依照中的步驟`mvn`，使用 CodeCatalyst 套件儲存庫進行設定[從 CodeCatalyst 擷取相依性](#mvn-fetch-dependencies)。

1. 確保您的儲存庫已新增您要從 安裝的閘道儲存庫做為上游連線。若要檢查要新增哪些上游來源，或將閘道儲存庫新增為上游來源，請遵循 中的指示[新增上游儲存庫](packages-upstream-repositories-add.md)。

如需從上游儲存庫請求套件的詳細資訊，請參閱 [使用上游儲存庫請求套件版本](packages-upstream-repositories-request.md)。

## 將套件發佈至 CodeCatalyst
<a name="mvn-publish-packages"></a>

若要將 Maven 套件發佈`mvn`至 CodeCatalyst 儲存庫，您還必須編輯 `~/.m2/settings.xml`和專案 POM。

**使用 `mvn`將套件發佈至 CodeCatalyst 套件儲存庫**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 在專案的概觀頁面上，選擇**套件**。

1. 從套件儲存庫清單中選擇套件儲存庫。

1. 選擇**連線至儲存庫**。

1. 在**連線至儲存庫**對話方塊中，從套件管理員用戶端清單中選擇 **mvn**。

1. 您需要個人存取字符 (PAT) 來`mvn`驗證 CodeCatalyst。如果您已經有，則可以使用它。如果沒有，您可以在這裡建立一個。

   1. 選擇**建立權杖**。

   1. 選擇**複製**以複製您的 PAT。
**警告**  
關閉對話方塊後，您將無法再次查看或複製 PAT。

1. 使用 PAT 在本機電腦上設定 環境變數。您將在 `setting.xml` 檔案中使用此環境變數。

   ```
   export CODECATALYST_ARTIFACTS_TOKEN=your_PAT
   ```

1. 使用 `CodeCatalyst_ARTIFACTS_TOKEN`環境變數的`settings.xml`參考將`<servers>`區段新增至 ，讓 Maven 在 HTTP 請求中傳遞字符。

   ```
   <settings>
   ...
       <servers>
           <server>
               <id>repo-name</id>
               <username>username</username>
               <password>${env.CodeCatalyst_ARTIFACTS_TOKEN}</password>
           </server>
       </servers>
   ...
   </settings>
   ```

1. 將`<distributionManagement>`區段新增至專案的 `pom.xml`。

   ```
   <project>
   ...
        <distributionManagement>
            <repository>
                <id>repo_name</id>
                <name>repo_name</name>
                <url>https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/</url>
            </repository>
        </distributionManagement>
   ...
   </project>
   ```

進行這些組態變更後，您可以建置專案並將其發佈至指定的儲存庫。

```
mvn deploy
```

您可以在 CodeCatalyst 主控台中導覽至套件儲存庫，以檢查套件是否已成功發佈。

## 發佈第三方套件
<a name="publishing-third-party-packages"></a>

您可以使用 將第三方 Maven 套件發佈至 CodeCatalyst 儲存庫`mvn deploy:deploy-file`。這對於想要發佈套件且只有 JAR 檔案且無法存取套件原始碼或 POM 檔案的使用者很有幫助。

`mvn deploy:deploy-file` 命令會根據在命令列中傳遞的資訊產生 POM 檔案。

首先，如果您沒有 PAT，請建立 PAT。

**建立個人存取字符 (PAT)**

1. 在頂端選單列中，選擇您的設定檔徽章，然後選擇**我的設定**。
**提示**  
您也可以前往專案或空間的成員頁面，並從成員清單中選擇您的名稱，以尋找您的使用者設定檔。

1. 在 **PAT 名稱**中，輸入 PAT 的描述性名稱。

1. 在**過期日期**中，保留預設日期或選擇行事曆圖示以選取自訂日期。過期日期預設為目前日期的一年後。

1. 選擇**建立**。

   您也可以在為來源**儲存庫選擇複製**儲存庫時建立此字符。

1. 將 PAT 秘密儲存在安全的位置。
**重要**  
PAT 秘密只會顯示一次。關閉視窗後就無法擷取它。

**發佈第三方 Maven 套件**

1. 建立具有下列內容`~/.m2/settings.xml`的檔案：

   ```
   <settings>
       <servers>
           <server>
               <id>repo_name</id>
               <username>username</username>
               <password>PAT}</password>
           </server>
       </servers>
   </settings>
   ```

1. 執行 `mvn deploy:deploy-file` 命令：

   ```
   mvn deploy:deploy-file -DgroupId=commons-cli          \
   -DartifactId=commons-cli       \
   -Dversion=1.4                  \
   -Dfile=./commons-cli-1.4.jar   \
   -Dpackaging=jar                \
   -DrepositoryId=repo-name      \
   -Durl=https://packages.region.codecatalyst.aws/maven/space-name/proj-name/repo-name/
   ```
**注意**  
上述範例會發佈 `commons-cli 1.4`。修改 groupId、 artifactID、版本和檔案引數以發佈不同的 JAR。

這些指示是根據指南中的範例[，從 Apache Maven 文件將第三方 JARs 部署到遠端儲存庫](https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html)。 **

 如需詳細資訊，請參閱 Apache Maven 專案網站上的這些主題：
+  [設定多個儲存庫](https://maven.apache.org/guides/mini/guide-multiple-repositories.html) 
+  [設定參考](https://maven.apache.org/settings.html) 
+  [分佈管理](https://maven.apache.org/pom.html#Distribution_Management) 
+  [設定檔](https://maven.apache.org/pom.html#Profiles) 