繁体   English   中英

NoClassDefFoundError:当仓库中有Maven依赖项和jar时

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM