java.lang.NoClassDefFoundError: org/yaml

4 maven apache-storm

我是使用 Storm 尝试提交 Storm-starter 的新手,但是当我

mvn package 
Run Code Online (Sandbox Code Playgroud)

我得到了那个错误

java.lang.NoClassDefFoundError: org/yaml/snakeyaml/constructor/BaseConstructor, 
compiling:(word_count.clj:16:1)
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3463)
Run Code Online (Sandbox Code Playgroud)

POM 文件在链接中

Nie*_*che 6

当遇到像您遇到的那样的 ClassPath 错误时,一个常见的问题是您可能会因传递依赖项而发生冲突;即,至少有两个工件提供了未找到类的不同版本,您需要排除冲突的一个。因此,您必须识别碰撞,例如在 maven do: 中 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>
Run Code Online (Sandbox Code Playgroud)

````