我正在尝试构建一个包含 Storm 项目的 Gradle 项目。为了在 Storm 上运行这个项目,我必须首先创建一个 JAR 文件并让 Storm 运行我的拓扑,例如
storm jar myJarFile.jar com.mypackage.MyStormMainClass
我遇到了问题,因为默认情况下,Gradle 在编译时和运行时都包含 Storm 依赖项。这会导致以下异常:
Exception in thread "main" java.lang.RuntimeException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar.
给出的异常实际上很有帮助,并提示我们解决问题的根本原因。解决方案是在使用 Gradle 编译时包含 Storm 依赖项,但在生成最终 JAR 文件时不包含。
有谁知道如何解决这个问题?StackOverflow 上的其他帖子并没有解决问题。如果您粘贴代码,请确保它实际运行。
谢谢!