Maven java.lang.NoClassDefFoundError:org/yaml
我是使用storm的新手,尝试提交storm初学者,但当我Maven java.lang.NoClassDefFoundError:org/yaml,maven,apache-storm,Maven,Apache Storm,我是使用storm的新手,尝试提交storm初学者,但当我 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) 当遇到像您遇到的那样的类路径错误时,一个常见的
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)
当遇到像您遇到的那样的类路径错误时,一个常见的问题是您可能会遇到来自可传递依赖项的冲突;i、 例如,至少有两个工件提供了未找到的类的不同版本,您需要排除冲突的工件。因此,您必须识别碰撞,例如在maven中:
mvn依赖项:树-Dverbose
然后查找冲突工件,在您的例子中是uri:
org/yaml/snakeyaml/constructor/BaseConstructor
标识maven坐标,groupId=org.yaml,artifactId=snakeyaml
,您会发现您案例中的工件“测试”提供了另一个snakeyaml,因此在该工件的依赖性中添加了一个排除项:
```
org.yaml
毒蛇
```
org.testng
testng
6.2
罐子
org.yaml
毒蛇
您是否遵循自述说明?你能帮忙吗
<exclusions>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
</exclusions>
<!-- 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>