java - 在 pom 中添加硒依赖项后,AWS Lambda Jar 无法压缩
问题描述
这是一个奇怪的错误。将 selenium 依赖项添加到我的 maven 项目的 pom 并将其上传到 lambda 后,它说它无法解压缩文件。但是,在删除依赖项之后,lambda 能够很好地解压缩文件(但是它会提供一个之后找不到的类)。我曾尝试一一删除依赖项,但每一个都会触发错误。
关于如何解决这个问题的任何想法?
找不到类错误
org/openqa/selenium/WebDriver: java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
lambda 无法压缩错误
Calling the invoke API action failed with this message: Lambda was not able to unzip the file
导致问题的依赖项
<dependency>
<groupId>org.seleniumhq.webdriver</groupId>
<artifactId>webdriver-common</artifactId>
<version>0.9.7376</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
更新的依赖项(对于 Vishal)
<dependency>
<groupId>org.seleniumhq.webdriver</groupId>
<artifactId>webdriver-common</artifactId>
<version>0.9.7376</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>2.0rc2</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>3.141.59</version>
</dependency>
配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
解决方案
尝试告诉您的依赖项输出 zip,也许 jar 搞砸了
将此添加到maven-assembly-plugin
配置中:
<formats>
<format>zip</format>
</formats>
例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
...
<configuration>
...
<formats>
<format>zip</format>
</formats>
</configuration>
</plugin>
这里也建议
推荐阅读
- c# - 如何更改 `System.ComponentModel.DataAnnotations.ValidationAttribute` 的默认验证错误
- linux - 删除所有包含特定字符串的文件 - Bash
- swift - Swift 向下滚动应该使 Bar Item 消失
- c# - 使用结构中不安全的固定大小的结构数组使用 C# 访问旧版 C-dll
- mongodb - 如何在 AWS DocumentDB 中存储大于 16mb 的文件?
- bash - awk 打印所有字母的日期格式 - 小写和大写
- jquery - 如何替换jquery循环中的文本
- pointers - 预处理器宏:从整数内容制作指针
- amazon-web-services - s3fs:无法为 curl 库加载 mime 类型
- angular - 对 ag-grid 中的对象使用自定义过滤器