我是使用风暴试图提交风暴启动器的新手,但是当我
时mvn package
我收到了这个错误
java.lang.NoClassDefFoundError: org/yaml/snakeyaml/constructor/BaseConstructor,
compiling:(word_count.clj:16:1)
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3463)
答案 0 :(得分:2)
我找到了这个解决方案:在pom
文件中添加它。
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.2</version>
<type>jar</type>
<exclusions>
<exclusion>
<artifactId>snakeyaml</artifactId>
<groupId>org.yaml</groupId>
</exclusion>
</exclusions>
但完全不知道为什么!
答案 1 :(得分:1)
当获得类似于你得到的ClassPath错误时,常见的问题是你可能会遇到来自传递依赖的冲突;即,至少有两个工件提供了“未找到类”的不同版本,您需要排除相互碰撞的工件。所以你必须确定碰撞,例如在maven做:
mvn dependency:tree -Dverbose
并寻找碰撞神器,在你的情况下,uri:
org/yaml/snakeyaml/constructor/BaseConstructor
标识maven坐标,groupId = org.yaml,artifactId = snakeyaml
,你会发现你的案例中的工件“测试”提供了另一个snakeyaml,因此添加了对该工件的依赖关系的排除:
```
<exclusions>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
</exclusions>
```
答案 2 :(得分:0)
<!-- just expanding/clarifying on the previous answer: -->
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.2</version>
<type>jar</type>
<exclusions>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>