[英]NoClassDefFoundError: while there is maven dependencie and jar in repo
谁能向我解释例外的原因是什么:
java.lang.NoClassDefFoundError: org/openqa/selenium/interactions/HasInputDevices
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
...
当我尝试使用rg.seleniumhq.selenium
硒支持库时会发生这种情况,我在POM.XML中对此进行了描述
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>2.33.0</version>
<scope>compile</scope>
</dependency>
和jar显示在外部库中,有什么建议吗?
您有一个依赖冲突,因为selenium-support
已经依赖于selenium-api
(请参阅selenium-support-2.33.0.pom
),但是在您的依赖树中的某个地方,使用了一个有冲突的版本selenium-api
。
阅读Apache Maven依赖插件-使用依赖树解决冲突 。
然后为您的Maven模块运行mvn dependency:tree -Dverbose -Dincludes=selenium-api
以查找您的冲突。
另请参阅以下有关堆栈溢出问题的答案:
您将需要解决依赖性冲突。 一种方法是使用Jens的答案,并明确声明对所需版本的依赖关系,但冲突仍然存在,并且您可能还存在其他未知的冲突。 我建议将依赖项收敛与Maven Enforcer插件 结合使用,如此处所述,以检测现有冲突并避免将来引入更多冲突。
该类是selenium-api.jar
。 也将此添加到您的pom。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>2.33.0</version>
</dependency>
这个jar包含org/openqa/selenium/interactions/HasInputDevices
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.