设置 Apache Maven 项目 - AWS SDK for Java 2.x

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

设置 Apache Maven 项目

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

先决条件

要将AWS 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 项目。原型为 AWS Lambda 函数处理程序项目生成支架。此项目原型预配置为使用 Java SE 8 进行编译,并包括适用于 Java 的 SDK 2.x 版本的依赖项(用 -DarchetypeVersion 指定)。

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

为 Maven 配置 Java 编译器

如果您使用前面所述的 AWS 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>

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

要在项目中使用AWS 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 替换为AWS SDK for Java 2.x 的最新版本

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

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

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

如果您使用前面所述的项目原型创建了项目,则您的项目已配置了多个依赖项。其中包括 AWS 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 客户端,这有助于减少 AWS Lambda 函数的启动延迟

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

注意

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

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

为了优化您的应用程序,强烈建议您仅拉入所需的组件而不是整个开发工具包。但是,要将整个AWS 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 文件中指定为依赖项的所有开发工具包模块。