AWS Lambda
开发人员指南

使用 Maven 但不借助任何 IDE 创建 .jar 部署程序包 (Java)

本章节介绍如何在命令行中使用 Maven 将 Java 代码打包到部署程序包中。

在您开始之前

您需要安装 Maven 命令行构建工具。有关更多信息,请转到 Maven。如果使用的是 Linux,请检查包管理器。

sudo apt-get install mvn

如果使用的是 Homebrew

brew install maven

项目结构概述

设置该项目后,您应拥有如下所示的文件夹结构:

project-dir/pom.xml          project-dir/src/main/java/ (your code goes here)

代码将位于 /java 文件夹中。例如,如果程序包名称为 example,其中有一个 Hello.java 类,则结构为:

project-dir/src/main/java/example/Hello.java

构建项目后,生成的 .jar 文件(即部署程序包)将位于 project-dir/target 子目录中。

步骤 1:创建项目

按照本章节中的步骤创建 Java 项目。

  1. 创建项目目录 (project-dir)。

  2. project-dir 目录中,创建以下内容:

    • 项目对象模型文件,pom.xml。添加以下项目信息和配置详细信息,以便 Maven 构建该项目。

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>doc-examples</groupId> <artifactId>lambda-java-example</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>lambda-java-example</name> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-core</artifactId> <version>1.2.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.1</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>

      注意

      • dependencies 部分中,groupId(即 com.amazonaws)是 Maven Central 存储库中 Maven 项目的 Amazon AWS 组 ID。artifactId(即 aws-lambda-java-core)是 AWS Lambda 的核心库,其中提供了 RequestHandlerRequestStreamHandlerContext AWS Lambda 接口的定义,以供您在 Java 应用程序中使用。在构建时,Maven 会解析这些依赖项。

      • 在插件部分中,Apache maven-shade-plugin 是一种插件,Maven 会在构建期间下载并使用它。该插件用于打包 jar 以创建独立的 .jar(一种 .zip 文件)- 即部署程序包。

      • 在按照本指南中的其他教程主题操作时,某些特定的教程可能会要求您添加更多的依赖项。确保根据需要添加这些依赖项。

  3. project-dir 中,创建下面的结构:

    project-dir/src/main/java
  4. /java 子目录下,添加 Java 文件和文件夹结构(如果有)。例如,如果 Java 程序包名称为 example,源代码为 Hello.java,则目录结构如下所示:

    project-dir/src/main/java/example/Hello.java

步骤 2:构建项目(创建部署程序包)

现在,您可以在命令行中使用 Maven 构建该项目了。

  1. 在命令提示符处,将目录更换到项目目录 (project-dir)。

  2. 运行下面的 mvn 命令来构建该项目:

    $ mvn package

    生成的 .jar 将保存为 project-dir/target/lambda-java-example-1.0-SNAPSHOT.jar。该 .jar 名称是通过将 pom.xml 文件中的 artifactIdversion 串接起来生成的。

    构建命令利用 pom.xml 中的信息进行必要的转换,最终生成了该 .jar。该独立 .jar(.zip 文件)包含了所有的依赖项。此即为部署程序包,您可以将其上传到 AWS Lambda 以创建 Lambda 函数。