【发布时间】:2019-08-31 19:14:21
【问题描述】:
我正在尝试使用 Java 为 AWS Lambda 创建一个部署包。我们一直在使用 maven-shade-plugin 来生成一个 uber jar。但是我看到在 AWS Lambda 的 best practice Function Code 部分下,提到了
通过将依赖项 .jar 文件放在单独的 /lib 目录中,减少 Lambda 解压缩以 Java 编写的部署包的时间。这比将所有函数的代码放在包含大量 .class 文件的单个 jar 中要快。
所以在我看来,生成一个 zip 部署包可以减少冷启动时间。通过关注link,我可以看出 zip 部署的要求是:
所有已编译的类文件和根级别的资源文件。
运行 /lib 目录中的代码所需的所有 jar。
但是,我无法使用 Maven 生成这样的 zip 文件。我尝试按照here 提到的步骤配置maven-assembly-plugin
生成的 zip 文件基本上包含我的根级别的 jar,而不是最佳实践中提到的 .class 文件。
我是否错误地理解了这个最佳实践建议,或者谁能告诉我如何使用 maven 实现这一点?
【问题讨论】:
-
通过此链接whirlysworld.blogspot.com/2016/03/…找到答案希望它对某人有所帮助。
标签: java maven aws-lambda maven-assembly-plugin