设置 Apache Maven 项目 - Amazon SDK for Java 2.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

设置 Apache Maven 项目

您可以使用 Apache Maven 设置和构建 Amazon SDK for Java 项目或构建 SDK 本身

先决条件

要将Amazon SDK for Java与 Maven 结合使用,您需要以下各项:

创建 Maven 项目

要从命令行创建 Maven 项目,请从终端或命令提示符窗口运行以下命令

mvn -B archetype:generate \ -DarchetypeGroupId=software.amazon.awssdk \ -DarchetypeArtifactId=archetype-lambda -Dservice=s3 -Dregion=US_WEST_2 \ -DarchetypeVersion=2.X.X \ -DgroupId=com.example.myapp \ -DartifactId=myapp
注意

com.example.myapp 替换为您的应用程序的完整程序包命名空间。还可以将 myapp 替换为您的项目名称。这将成为项目的目录的名称。

要使用最新版本的原型,请将 2.X.X 替换为 Maven Central 中的最新版本

此命令使用原型模板工具包创建 Maven 项目。原型为 Amazon Lambda 函数处理程序项目生成支架。此项目原型预配置为使用 Java SE 8 进行编译,并包括适用于 Java 的 SDK 2.x 版本的依赖项(用 -DarchetypeVersion 指定)。

有关创建和配置 Maven 项目的更多信息,请参阅 Maven 入门指南

为 Maven 配置 Java 编译器

如果您使用前面所述的 Amazon Lambda 项目原型创建了项目,则已经为您完成了 Java 编译器的配置。

要验证此配置存在,请首先从执行上一个命令时创建的项目文件夹(例如, myapp)中打开 pom.xml 文件。检查第 11 行和第 12 行以查看此 Maven 项目的 Java 编译器版本设置,以及检查第 71-75 行上是否包含所需的 Maven 编译器插件。

<project> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.plugin.version}</version> </plugin> </plugins> </build> </project>

如果使用其他原型或其他方法创建项目,则必须确保 Maven 编译器插件是构建的一部分,并且将 pom.xml 文件中的源和目标属性均设置为 1.8

有关一种配置这些必需设置的方法,请参阅上一个代码段。

或者,您可以使用插件声明内联配置编译器配置,如下所示。

<project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>

将开发工具包声明为依赖项

要在项目中使用Amazon SDK for Java,您需要在项目的 pom.xml 文件中将该工具包声明为依赖项。

如果您使用前面所述的项目原型创建了项目,则已将 SDK 的最新版本配置为项目中的依赖项。

原型为 software.amazon.awssdk 组 ID 生成一个 BOM(材料清单)构件依赖项。使用 BOM 时,您不必为共享相同组 ID 的各个构件依赖项指定 maven 版本。

如果您以不同的方式创建了 Maven 项目,请通过确保 pom.xml 文件包含以下内容来为项目配置最新版本的开发工具包。

<project> <properties> <aws.java.sdk.version>2.X.X</aws.java.sdk.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>${aws.java.sdk.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
注意

pom.xml 文件中的 2.X.X 替换为Amazon SDK for Java 2.x 的最新版本

设置开发工具包模块的依赖项

现在您已配置了开发工具包,您可以为项目中要使用的一个或多个Amazon SDK for Java模块添加依赖项。

尽管您可以为每个组件指定版本号,但无需这样做,因为您已使用材料清单构件在 dependencyManagement 部分中声明了 SDK 版本。要加载给定模块的其他版本,请为其依赖项指定版本号。

如果您使用前面所述的项目原型创建了项目,则您的项目已配置了多个依赖项。其中包括 Amazon Lambda 函数处理程序和 Amazon S3 的依赖项,如下所示。

<project> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <exclusions> <exclusion> <groupId>software.amazon.awssdk</groupId> <artifactId>netty-nio-client</artifactId> </exclusion> <exclusion> <groupId>software.amazon.awssdk</groupId> <artifactId>apache-client</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>url-connection-client</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-core</artifactId> <version>${aws.lambda.java.version}</version> </dependency> </dependencies> </project>
注意

在上面的 pom.xml 示例中,依赖项来自不同的 groupIds3 依赖项来自 software.amazon.awssdk,而 aws-lambda-java-core 依赖项来自 com.amazonaws。BOM 依赖项管理配置会影响 software.amazon.awssdk 的构件,因此需要为 aws-lambda-java-core 构件提供一个版本。

对于使用适用于 Java 的 SDK 2.x 开发的 Lambda 函数处理程序,正确的依赖项是 aws-lambda-java-core。但是,如果您的应用程序需要使用诸如 listFunctionsdeleteFunctioninvokeFunctioncreateFunction 之类的操作来管理 Lambda 资源,则您的应用程序需要以下依赖项。

<groupId>software.amazon.awssdk</groupId> <artifactId>lambda</artifactId>
注意

s3 依赖项与 netty-nio-clientapache-client 传递依赖项相斥。原型中包含了 url-connection-client 依赖项来代替这两个 HTTP 客户端,这有助于减少 Amazon Lambda 函数的启动延迟

将模块添加到您的项目中,以获得您的项目所需的 Amazon Web Service和功能。由 Amazon SDK for Java BOM 管理的模块(依赖项)列在 Maven Central 存储库中。

注意

您可以从代码示例中查看 pom.xml 文件,以确定您的项目需要哪些依赖项。例如,如果您对 DynamoDB 服务的依赖项感兴趣,请在 GitHub 上的 Amazon 代码示例存储库中查看此示例。(在 /javav2/example_code/dynamodb 下查找 pom.xml 文件。)

将整个开发工具包构建到您的项目中

为了优化您的应用程序,强烈建议您仅拉入所需的组件而不是整个开发工具包。但是,要将整个Amazon SDK for Java构建到您的项目中,请在 pom.xml 文件中声明它,如下所示。

<project> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>aws-sdk-java</artifactId> <version>2.X.X</version> </dependency> </dependencies> </project>

重新构建项目。

配置 pom.xml 文件后,您可以使用 Maven 构建您的项目。

要从命令行生成 Maven 项目,请打开终端或命令提示符窗口,导航到项目目录(例如,myapp),输入或粘贴以下命令,然后按 Enter 或 Return。

mvn package

这将在 target 目录(例如, myapp/target)中创建单个 .jar 文件 (JAR)。此 JAR 包含您在 pom.xml 文件中指定为依赖项的所有开发工具包模块。