设置 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

先决条件

要将 Maven 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 中心的最新消息

此命令使用原型模板工具包创建 Maven 项目。原型为函数处理程序项目生成脚手架。 Amazon Lambda 此项目原型已预先配置为使用 Java SE 8 进行编译,并且包括对指定的 Java 2.x 版本SDK的依赖关系。-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>

声明SDK为依赖项

要在项目 Amazon SDK for Java 中使用,你需要在项目pom.xml文件中将其声明为依赖项。

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

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

如果您以其他方式创建 Maven 项目,请确保pom.xml文件包含以下内容,从而SDK为您的项目配置最新版本。

<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>
注意

Replace(替换) 2.X.Xpom.xml包含最新版本的文件中 Amazon SDK for Java 2.x

为SDK模块设置依赖关系

现在您已经配置了SDK,可以为项目中使用的一个或多个 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构件提供一个版本。

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

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

s3 依赖项与 netty-nio-clientapache-client 传递依赖项相斥。原型包括url-connection-client依赖关系,取而代之的是这两个HTTP客户端,这有助于减少函数的启动延迟。 Amazon Lambda

将项目所需的模块 Amazon Web Services 服务 和功能添加到您的项目中。由管理的模块(依赖关系)列 Amazon SDK for Java BOM在 Maven 中央存储库中

注意

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

SDK将整个内容构建到您的项目中

为了优化您的应用程序,我们强烈建议您只提取所需的组件,而不是整个组件SDK。但是,要 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目录中创建一个.jar文件 (JAR)(例如,myapp/target)。这JAR包含您在pom.xml文件中指定为依赖项的所有SDK模块。