

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置并使用 Gradle Groovy
<a name="packages-maven-gradle"></a>

要将 Gradle Groovy 与配合使用 CodeCatalyst，您必须将 Gradle Groovy 连接到您的软件包存储库，并提供用于身份验证的个人访问令牌 (PAT)。你可以在控制台中查看将 Gradle Groovy 连接到软件包存储库的说明。 CodeCatalyst 

**Contents**
+ [从中获取依赖关系 CodeCatalyst](#gradle-fetch-dependencies)
+ [从中获取插件 CodeCatalyst](#gradle-fetch-plugins)
+ [通过以下方式从外部软件包存储库获取软件包 CodeCatalyst](#gradle-install-public)
+ [将包发布到 CodeCatalyst](#gradle-publish-packages)
+ [在 IntelliJ IDEA 中运行 Gradle 构建](#gradle-intellij)
  + [方法 1：将 PAT 放入 `gradle.properties`](#gradle-intellij-gradle-properties)
  + [方法 2：将 PAT 放入单独的文件中](#gradle-intellij-file)

## 从中获取依赖关系 CodeCatalyst
<a name="gradle-fetch-dependencies"></a>

以下说明说明了如何配置 Gradle Groovy 以获取软件包存储 CodeCatalyst 库的依赖项。

**使用 Gradle Groovy 从软件包存储库中获取依赖项 CodeCatalyst**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 导航到您的项目。

1. 在导航窗格中，选择**程序包**。

1. 从程序包存储库列表中，选择您的程序包存储库。

1. 选择**连接到存储库**。

1. 在**连接到存储库**对话框中，从程序包管理器客户端列表中选择 **Gradle Groovy**。

1. 你需要一个个人访问令牌 (PAT) 来对 Gradle Groovy 进行身份验证。 CodeCatalyst如果您已有一个 PAT，则可以使用它。如果没有 PAT，您可以在此处创建一个。

   1. 选择**创建令牌**。

   1. 选择**复制**以复制您的 PAT。
**警告**  
关闭此对话框后，您将无法再次查看或复制您的 PAT。

1. 使用您的访问凭证更新您的 gradle 属性文件。*username*替换为您的 CodeCatalyst 用户名，然后*PAT*用您的 CodeCatalyst 个人访问令牌替换。只要在以下步骤中使用相同的值，就可以为*spaceUsername*和*spacePassword*使用任何值。

   ```
   spaceUsername=username
   spacePassword=PAT
   ```

1. 要从 Gradle 版本 CodeCatalyst 中获取依赖关系，请复制`maven`代码片段并将其添加到项目文件的相应`repositories`部分。`build.gradle`替换以下值。*spaceName*只要在以下步骤中使用相同的值，就可以使用任何值。
**注意**  
如果通过控制台指令进行复制，则以下值将进行更新且不应更改。
   + *space\$1name*替换为您的 CodeCatalyst空间名称。
   + *proj\$1name*用您的 CodeCatalyst项目名称替换。
   + *repo\$1name*替换为你的 CodeCatalyst软件包存储库名称。

   ```
   maven {
     name = 'spaceName'
     url = uri('https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/')
     credentials(PasswordCredentials)
   }
   ```

1. （可选）要将 CodeCatalyst 包存储库用作项目依赖关系的唯一来源，请从`build.gradle`文件中删除存储库中的任何其他部分。如果您有多个存储库，Gradle 会按照列出的顺序在每个存储库中搜索依赖项。

## 从中获取插件 CodeCatalyst
<a name="gradle-fetch-plugins"></a>

默认情况下，Gradle 会解析来自公有 [Gradle 插件门户](https://plugins.gradle.org/)的插件。以下步骤将您的 Gradle 项目配置为解析 CodeCatalyst 软件包存储库中的插件。

**使用 Gradle 从 CodeCatalyst 软件包存储库中获取插件**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 导航到您的项目。

1. 在导航窗格中，选择**程序包**。

1. 从程序包存储库列表中，选择您的程序包存储库。

1. 选择**连接到存储库**。

1. 在**连接到存储库**对话框中，从程序包管理器客户端列表中选择 **Gradle**。

1. 您需要使用个人访问令牌 (PAT) 来对 Gradle 进行 CodeCatalyst身份验证。如果您已有一个 PAT，则可以使用它。如果没有 PAT，您可以在此处创建一个。

   1. 选择**创建令牌**。

   1. 选择**复制**以复制您的 PAT。
**警告**  
关闭此对话框后，您将无法再次查看或复制您的 PAT。

1. 使用您的访问凭证更新您的 gradle 属性文件。*username*替换为您的 CodeCatalyst 用户名，然后*PAT*用您的 CodeCatalyst 个人访问令牌替换。只要在以下步骤中使用相同的值，就可以为*spaceUsername*和*spacePassword*使用任何值。

   ```
   spaceUsername=username
   spacePassword=PAT
   ```

1. 在 `settings.gradle` 文件中添加一个 `pluginManagement` 块。`pluginManagement` 块必须出现在 `settings.gradle` 中的任何其他语句之前。替换以下值。
**注意**  
如果通过控制台指令进行复制，则以下值将进行更新且不应更改。
   + *spaceName*替换为上一步中使用的名称值。
   + *space\$1name*替换为您的 CodeCatalyst空间名称。
   + *proj\$1name*用您的 CodeCatalyst项目名称替换。
   + *repo\$1name*替换为你的 CodeCatalyst软件包存储库名称。

   ```
   pluginManagement {
       repositories {
           maven {
               name = 'spaceName'
               url = uri('https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/')
               credentials(PasswordCredentials)
           }
       }
   }
   ```

   这将确保 Gradle 会解析来自指定存储库的插件。存储库必须已配置与 Gradle 插件门户（`gradle-plugins-store`）的上游连接，以便构建可以使用通常所需的 Gradle 插件。有关更多信息，请参阅 [Gradle 文档](https://docs.gradle.org/current/userguide/plugins.html#sec:custom_plugin_repositories)。

## 通过以下方式从外部软件包存储库获取软件包 CodeCatalyst
<a name="gradle-install-public"></a>

您可以通过存储库从公共存储库安装 Maven 软件包，方法是将其配置为与代表网关存储库的网关的上游连接。 CodeCatalyst从网关存储库安装的软件包会被提取并存储在您的存储 CodeCatalyst库中。

CodeCatalyst 支持以下公共 Maven 软件包存储库。
+ maven-central-gateway
+ google-android-gateway
+ gradle-plugins-gateway
+ commonsware-gateway

**从公共 Maven 程序包存储库安装程序包**

1. 如果您还没有，请按照[从中获取依赖关系 CodeCatalyst](#gradle-fetch-dependencies)或[从中获取插件 CodeCatalyst](#gradle-fetch-plugins)中的步骤使用您的 CodeCatalyst 软件包存储库配置 Gradle。

1. 确保您的存储库已将要从中安装的网关存储库添加为上游连接。为此，您可以按照[添加上游存储库](packages-upstream-repositories-add.md)中的说明操作，并选择要作为上游添加的公共程序包存储库。

有关从上游存储库请求程序包的更多信息，请参阅[请求包含上游存储库的程序包版本](packages-upstream-repositories-request.md)。

## 将包发布到 CodeCatalyst
<a name="gradle-publish-packages"></a>

本节介绍如何将使用 Gradle Groovy 构建的 Java 库发布到存储库。 CodeCatalyst

**使用 Gradle Groovy 将软件包发布到软件包存储库 CodeCatalyst**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 在项目的概述页面上，选择**程序包**。

1. 从程序包存储库列表中，选择您的程序包存储库。

1. 选择**连接到存储库**。

1. 在**连接到存储库**对话框中，从程序包管理器客户端列表中选择 **Gradle Groovy**。

1. 您需要使用个人访问令牌 (PAT) 来对 Gradle 进行 CodeCatalyst身份验证。如果您已有一个 PAT，则可以使用它。如果没有 PAT，您可以在此处创建一个。

   1. 选择**创建令牌**。

   1. 选择**复制**以复制您的 PAT。
**警告**  
关闭此对话框后，您将无法再次查看或复制您的 PAT。

1. 使用您的访问凭证更新您的 gradle 属性文件。*username*替换为您的 CodeCatalyst 用户名，然后*PAT*用您的 CodeCatalyst 个人访问令牌替换。只要在以下步骤中使用相同的值，就可以为*spaceUsername*和*spacePassword*使用任何值。

   ```
   spaceUsername=username
   spacePassword=PAT
   ```

1. 将 `maven-publish` 插件添加到项目的 `build.gradle` 文件的 `plugins` 部分。

   ```
   plugins {
       id 'java-library'
       id 'maven-publish'
   }
   ```

1. 接下来，在项目 `build.gradle` 文件中添加一个 `publishing` 部分。替换以下值。
**注意**  
如果通过控制台指令进行复制，则以下值将进行更新且不应更改。
   + *space\$1name*替换为您的 CodeCatalyst空间名称。
   + *proj\$1name*用您的 CodeCatalyst项目名称替换。
   + *repo\$1name*替换为你的 CodeCatalyst软件包存储库名称。

   ```
   publishing {
       publications {
           mavenJava(MavenPublication) {
               groupId = 'group-id'
               artifactId = 'artifact-id'
               version = 'version'
               from components.java
           }
       }
       repositories {
           maven {
               name = 'spaceName'
               url = uri('https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/')
               credentials(PasswordCredentials)
           }
       }
   }
   ```

   `maven-publish` 插件根据 `publishing` 部分中指定的 `groupId`、`artifactId` 和 `version` 生成 POM 文件。

1. 对 `build.gradle` 作出的这些更改完成后，运行以下命令来构建项目并将其上传到存储库。

   ```
   ./gradlew publish
   ```

1. 在 CodeCatalyst 控制台中导航到您的软件包存储库，以检查软件包是否已成功发布。您应在程序包存储库的**程序包**列表中看到该程序包。

有关更多信息，请参阅 Gradle 网站上的以下主题：
+  [构建 Java 库](https://guides.gradle.org/building-java-libraries/) 
+  [将项目作为模块发布](https://docs.gradle.org/current/userguide/publishing_setup.html) 

## 在 IntelliJ IDEA 中运行 Gradle 构建
<a name="gradle-intellij"></a>

你可以在 IntelliJ IDEA 中运行 Gradle 构建，从中提取依赖关系。 CodeCatalyst要对 Gradle 进行身份验证 CodeCatalyst，必须使用个人访问令牌 (PAT)。您可以将 CodeCatalyst PAT 存储在自己选择的单独文件中`gradle.properties`或单独存储。

### 方法 1：将 PAT 放入 `gradle.properties`
<a name="gradle-intellij-gradle-properties"></a>

如果您未使用 `gradle.properties` 文件并且能够用 PAT 覆盖其内容，请使用此方法。如果您使用 `gradle.properties`，则可以修改此方法以添加 PAT，而不是覆盖文件内容。

**注意**  
该示例显示了位于 `GRADLE_USER_HOME` 中的 `gradle.properties` 文件。

首先，创建一个 PAT（如果您没有 PAT）。

**创建个人访问令牌（PAT）**

1. 在顶部菜单栏中，选择您的个人资料徽章，然后选择**我的设置**。
**提示**  
您还可以通过转到项目或空间的成员页面，然后从成员列表中选择您的姓名，找到您的用户个人资料。

1. 在 **PAT 名称**中，为您的 PAT 输入描述性名称。

1. 在**到期日期**中，保留默认日期，或者选择日历图标以自定义日期。到期日期默认为从当前日期起一年后。

1. 选择**创建**。

   当为源存储库选择**克隆存储库**时，也可以创建此令牌。

1. 将 PAT 密钥保存在安全位置。
**重要**  
PAT 密钥仅显示一次。关闭窗口后将无法再检索该密钥。

接下来，使用以下代码段来更新 `build.gradle` 文件：

```
repositories {
    maven {
        name = 'spaceName'
        url = uri('https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/')
        credentials(PasswordCredentials)
    }
}
```

### 方法 2：将 PAT 放入单独的文件中
<a name="gradle-intellij-file"></a>

如果您不想修改 `gradle.properties` 文件，请使用此方法。

首先，创建一个 PAT（如果您没有 PAT）。

**创建个人访问令牌（PAT）**

1. 在顶部菜单栏中，选择您的个人资料徽章，然后选择**我的设置**。
**提示**  
您还可以通过转到项目或空间的成员页面，然后从成员列表中选择您的姓名，找到您的用户个人资料。

1. 在 **PAT 名称**中，为您的 PAT 输入描述性名称。

1. 在**到期日期**中，保留默认日期，或者选择日历图标以自定义日期。到期日期默认为从当前日期起一年后。

1. 选择**创建**。

   当为源存储库选择**克隆存储库**时，也可以创建此令牌。

1. 将 PAT 密钥保存在安全位置。
**重要**  
PAT 密钥仅显示一次。关闭窗口后将无法再检索该密钥。

**将 PAT 放在单独的文件中**

1. 使用以下代码段来更新 `build.gradle` 文件。将*space\$1name**proj\$1name*、和*repo\$1name*，替换为您的 CodeCatalyst 用户名、空间名称、项目名称和软件包存储库名称。

   ```
   def props = new Properties()
   file("fileName").withInputStream { props.load(it) }
                     
   repositories {
           maven {
               name = 'spaceName'
               url = uri('https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/')
               credentials(PasswordCredentials)
           }
       }
   }
   ```

1. 将 PAT 写入在 `build.gradle` 文件中指定的文件：

   ```
   echo "codecatalystArtifactsToken=PAT" > fileName
   ```