创建 .zip 部署程序包 (Java)
本节提供了创建 .zip 文件作为部署程序包的示例。您可以使用任何构建和打包工具来创建该 zip。不管使用何种工具,生成的 .zip 文件都必须采用下面的结构:
-
所有编译的类文件和资源文件都必须位于根级别。
-
运行代码所必需的全部 jar 都必须位于
/lib
目录中。
注意
此外,您还可以构建独立的 .jar(也称作压缩文件)作为部署程序包。有关使用 Maven 创建独立 .jar 的示例,请参阅创建部署程序包 (Java)。
以下示例使用 Gradle 构建和部署工具创建 .zip。
重要
要求安装 Gradle 2.0 版或更高版本。
在您开始之前
您需要下载 Gradle。有关说明,请转到 gradle 网站:https://gradle.org/。
示例 1:使用 Gradle 和 Maven Central 存储库创建 .zip
本演练结束时,项目目录 (
) 将包含如下所示的内容结构:
project-dir
Copy
project-dir
/build.gradleproject-dir
/src/main/java/
/java
文件夹包含您的代码。例如,如果程序包名称为 example
,其中有一个 Hello.java
类,则结构为:
Copy
project-dir
/src/main/java/example/Hello.java
构建项目后,生成的 .zip 文件(即部署程序包)将位于
子目录中。
project-dir
/build/distributions
-
创建项目目录 (
)。project-dir
-
在
中,创建project-dir
build.gradle
文件并添加以下内容:Copyapply plugin: 'java' repositories { mavenCentral() } dependencies { compile ( 'com.amazonaws:aws-lambda-java-core:1.1.0', 'com.amazonaws:aws-lambda-java-events:1.1.0' ) } task buildZip(type: Zip) { from compileJava from processResources into('lib') { from configurations.runtime } } build.dependsOn buildZip
注意
-
存储库部分指的是 Maven Central 存储库。在构建时,它从 Maven Central 获取依赖项(即:两个 AWS Lambda 库)。
-
buildZip
任务描述如何创建部署程序包 .zip 文件。例如,如果解压缩生成的 .zip 文件,可在根级别找到所有编译好的类文件和资源文件。此外,还可以找到一个包含运行代码所需的 jar 的
/lib
目录。 -
在按照本指南中的其他教程主题操作时,某些特定的教程可能会要求您添加更多的依赖项。确保根据需要添加这些依赖项。
-
-
在
中,创建下面的结构:project-dir
Copyproject-dir
/src/main/java/ -
在
/java
子目录下,添加 Java 文件和文件夹结构(如果有)。例如,如果 Java 程序包名称是example
,源代码为Hello.java
,则目录结构如下所示:Copyproject-dir
/src/main/java/example/Hello.java -
运行下面的 gradle 命令以构建项目并将其打包到一个 .zip 文件中。
Copyproject-dir
> gradle build -
验证生成的
文件位于project-dir
.zip
子目录中。project-dir
/build/distributions -
现在,您可以将部署程序包(即 .zip 文件)上传到 AWS Lambda,以创建 Lambda 函数并使用示例事件数据手动调用它来进行测试。有关说明,请参阅 步骤 2.3:(可选)创建用 Java 编写的 Lambda 函数。
示例 2:使用 Gradle 和本地 Jar 创建 .zip
您可以选择不使用 Maven Central 存储库,而是将所有依赖项都包含在项目文件夹中。在这种情况下,项目文件夹 (
) 的结构如下:
project-dir
Copy
project-dir
/jars/ (all jars go here)project-dir
/build.gradleproject-dir
/src/main/java/ (your code goes here)
因此,如果 Java 代码包含 example
程序包和 Hello.java
类,则代码将位于下面的子目录中:
Copy
project-dir
/src/main/java/example/Hello.java
您的 build.gradle
文件应为:
Copyapply plugin: 'java' dependencies { compile fileTree(dir: 'jars', include: '*.jar') } task buildZip(type: Zip) { from compileJava from processResources into('lib') { from configurations.runtime } } build.dependsOn buildZip
注意:依赖项指定 fileTree
,后者将
标识为包含所有必需 jar 的子目录。
project-dir
/jars
现在,您可以构建程序包了。运行下面的 gradle 命令以构建项目并将其打包到一个 .zip 文件中。
Copy
project-dir
> gradle build