

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

# 设置一个使用 GraalVM 原生镜像项目 AWS SDK for Java 2.x
<a name="setup-project-graalvm"></a>

在 2.16.1 及更高版本中，为 GraalVM 原生映像应用程序 AWS SDK for Java 2.x 提供 out-of-the-box支持。使用 `archetype-app-quickstart` Maven 原型设置具有内置原生映像支持的项目。

## 先决条件
<a name="setup-graalvmnativeimage-prereq"></a>
+ 完成[设置 适用于 Java 的 AWS SDK 2.x](setup.md) 中的步骤。
+ 安装 [GraalVM 原生映像](https://www.graalvm.org/reference-manual/native-image/#install-native-image)。

## 使用原型创建项目
<a name="setup-graalvmnativeimage-project"></a>

要创建具有内置原生映像支持的 Maven 项目，请在终端或命令提示符窗口中使用以下命令。

**注意**  
将 `com.example.mynativeimageapp` 替换为您的应用程序的完整程序包命名空间。还要将 `mynativeimageapp` 替换为您的项目名称。这将成为项目的目录的名称。

```
mvn archetype:generate \
    -DarchetypeGroupId=software.amazon.awssdk \
    -DarchetypeArtifactId=archetype-app-quickstart \
    -DarchetypeVersion=2.27.21\
    -DnativeImage=true \
    -DhttpClient=apache-client \
    -Dservice=s3 \
    -DgroupId=com.example.mynativeimageapp \
    -DartifactId=mynativeimageapp \
    -DinteractiveMode=false
```

此命令创建一个 Maven 项目，该项目配置了 适用于 Java 的 AWS SDK Amazon S3、和 `ApacheHttpClient` HTTP 客户端的依赖关系。它还包含 [GraalVM 原生映像 Maven 插件](https://graalvm.github.io/native-build-tools/latest/index.html)的依赖项，使您可以使用 Maven 构建原生映像。

要包含不同服务的依赖关系 Amazon Web Services，请将`-Dservice`参数的值设置为该服务的构件 ID。示例包括 `dynamodb`、`comprehend` 和 `pinpoint`。有关构件的完整列表 IDs，请参阅 Maven Central 上[软件.amazon.aw](https://mvnrepository.com/artifact/software.amazon.awssdk/bom/latest) ssdk 的托管依赖项列表。

要使用异步 HTTP 客户端，请将 `-DhttpClient` 参数设置为 `netty-nio-client`。要使用 `UrlConnectionHttpClient` 作为同步 HTTP 客户端，而不使用 `apache-client`，请将 `-DhttpClient` 参数设置为 `url-connection-client`。

## 生成原生映像
<a name="build-graalvmnativeimage-project"></a>

创建项目后，从项目目录（例如 `mynativeimageapp`）中运行以下命令：

```
mvn package -P native-image
```

这将在 `target` 目录（例如 `target/mynativeimageapp`）中创建原生映像应用程序。