本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Apache Maven 项目
您可以使用 Apache Maven
先决条件
要将AWS SDK for Java与 Maven 结合使用,您需要以下各项:
-
Java 8.0 或更高版本。您可以从 http://www.oracle.com/technetwork/java/javase/downloads/
下载最新的 Java SE 开发工具包软件。AWS SDK for Java还可以与 OpenJDK 和 Amazon Corretto(开源 Java 开发工具包 (OpenJDK) 的一个发行版)结合使用。从 https://openjdk.java.net/install/index.html 下载最新 OpenJDK 版本。从 Corretto 页面 下载最新的 Amazon Corretto 8 或 Amazon Corretto 11 版本。 -
Apache Maven。如果您需要安装 Maven,请转到 http://maven.apache.org/
下载并安装它。
创建 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
示例中,依赖项来自不同的 groupId
。s3
依赖项来自 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
。但是,如果您的应用程序需要使用诸如 listFunctions
、deleteFunction
、invokeFunction
和 createFunction
之类的操作来管理 Lambda 资源,则您的应用程序需要以下依赖项。
<groupId>software.amazon.awssdk</groupId> <artifactId>lambda</artifactId>
注意
s3
依赖项与 netty-nio-client
和 apache-client
传递依赖项相斥。原型中包含了 url-connection-client
依赖项来代替这两个 HTTP 客户端,这有助于减少 AWS Lambda 函数的启动延迟。
将模块添加到您的项目中,以获得您的项目所需的 AWS 服务和功能。由 AWS SDK for Java BOM 管理的模块(依赖项)列在 Maven Central 存储库
注意
您可以从代码示例中查看 pom.xml
文件,以确定您的项目需要哪些依赖项。例如,如果您对 DynamoDB 服务的依赖项感兴趣,请在 GitHub 上的 AWS 代码示例存储库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
文件中指定为依赖项的所有开发工具包模块。